/* Generated by Cython 0.29.2 */

#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_2"
#define CYTHON_HEX_VERSION 0x001D02F0
#define CYTHON_FUTURE_DIVISION 1
#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"
  #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 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_USE_DICT_VERSIONS
#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);\
        }\
    }
#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
#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; // PyThread_create_key reports success always
}
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 // TSS (Thread Specific Storage) API
#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)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
#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
  #define PyObject_Unicode             PyObject_Str
#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 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) ? PyMethod_New(func, self) : (Py_INCREF(func), 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_ERR(f_index, lineno, Ln_error) \
{ \
  __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; 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__CoolProp__CoolProp
#define __PYX_HAVE_API__CoolProp__CoolProp
/* Early includes */
#include <string.h>
#include "ios"
#include "new"
#include "stdexcept"
#include "typeinfo"
#include <string>
#include <vector>
#include "DataStructures.h"
#include "Configuration.h"
#include "PhaseEnvelope.h"
#include "AbstractState.h"
#include "CoolPropTools.h"
#include "CoolPropLib.h"
#include "CoolProp.h"
#include "HumidAirProp.h"
#include "Backends/Helmholtz/MixtureParameters.h"
#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 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_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;


static const char *__pyx_f[] = {
  "CoolProp.pyx",
  "HumidAirProp.pyx",
  "AbstractState.pyx",
  "AbstractState.pxd",
  "stringsource",
};

/* "typedefs.pxd":1
 * ctypedef double CoolPropDbl             # <<<<<<<<<<<<<<
 */
typedef double __pyx_t_8CoolProp_8typedefs_CoolPropDbl;

/*--- Type declarations ---*/
struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData;
struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure;
struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState;
struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData;
struct __pyx_obj_8CoolProp_8CoolProp_AbstractState;
struct __pyx_obj_8CoolProp_8CoolProp_State;
struct __pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance;
struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat;
struct __pyx_opt_args_8CoolProp_8CoolProp_Props;
struct __pyx_opt_args_8CoolProp_8CoolProp_PropsSI;

/* "AbstractState.pxd":97
 * 
 *     ## Tangent plane distance
 *     cpdef double tangent_plane_distance(self, double T, double p, vector[double] w, double rhomolar_guess=*) except *             # <<<<<<<<<<<<<<
 * 
 *     ## ----------------------------------------
 */
struct __pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance {
  int __pyx_n;
  double rhomolar_guess;
};

/* "CoolProp/CoolProp.pxd":40
 *     cpdef double get_dpdT(self) except *
 *     cpdef double get_speed_sound(self) except *
 *     cpdef get_Tsat(self, double Q = *)             # <<<<<<<<<<<<<<
 *     cpdef get_subcooling(self)
 *     cpdef get_superheat(self)
 */
struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat {
  int __pyx_n;
  double Q;
};

/* "CoolProp/CoolProp.pyx":318
 *         raise ValueError("{fcn:s} failed ungracefully :: inputs were:\"{in1:s}\",\"{in2:s}\",{in3:0.16e},\"{in4:s}\",{in5:0.16e},\"{in6:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn = fcn, in1=in1,in2=in2,in3=in3,in4=in4,in5=in5,in6=in6))
 * 
 * cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None):             # <<<<<<<<<<<<<<
 *     """
 *     This function is deprecated, use PropsSI instead
 */
struct __pyx_opt_args_8CoolProp_8CoolProp_Props {
  int __pyx_n;
  PyObject *in3;
  PyObject *in4;
  PyObject *in5;
  PyObject *in6;
};

/* "CoolProp/CoolProp.pyx":347
 *     return _PhaseSI(in1, in2, in3, in4, in5)
 * 
 * cpdef PropsSI(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None, in7 = None):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::PropsSI` .
 */
struct __pyx_opt_args_8CoolProp_8CoolProp_PropsSI {
  int __pyx_n;
  PyObject *in3;
  PyObject *in4;
  PyObject *in5;
  PyObject *in6;
  PyObject *in7;
};

/* "AbstractState.pxd":29
 *     long
 * 
 * cdef class PyPhaseEnvelopeData:             # <<<<<<<<<<<<<<
 *     cpdef public bool TypeI
 *     cpdef public size_t iTsat_max, ipsat_max, icrit
 */
struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData {
  PyObject_HEAD
  bool TypeI;
  size_t iTsat_max;
  size_t ipsat_max;
  size_t icrit;
  PyObject *T;
  PyObject *p;
  PyObject *lnT;
  PyObject *lnp;
  PyObject *rhomolar_liq;
  PyObject *rhomolar_vap;
  PyObject *lnrhomolar_liq;
  PyObject *lnrhomolar_vap;
  PyObject *hmolar_liq;
  PyObject *hmolar_vap;
  PyObject *smolar_liq;
  PyObject *smolar_vap;
  PyObject *Q;
  PyObject *x;
  PyObject *y;
  PyObject *K;
};


/* "AbstractState.pxd":35
 *     cpdef public list x, y, K
 * 
 * cdef class PyGuessesStructure:             # <<<<<<<<<<<<<<
 *     cpdef public double T, p, rhomolar, hmolar, smolar
 *     cpdef public double rhomolar_liq, rhomolar_vap
 */
struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure {
  PyObject_HEAD
  double T;
  double p;
  double rhomolar;
  double hmolar;
  double smolar;
  double rhomolar_liq;
  double rhomolar_vap;
  PyObject *x;
  PyObject *y;
};


/* "AbstractState.pxd":40
 *     cpdef public list x, y
 * 
 * cdef class PyCriticalState:             # <<<<<<<<<<<<<<
 *     cpdef public double T, p, rhomolar, hmolar, smolar
 *     cpdef public bool stable
 */
struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState {
  PyObject_HEAD
  double T;
  double p;
  double rhomolar;
  double hmolar;
  double smolar;
  bool stable;
};


/* "AbstractState.pxd":44
 *     cpdef public bool stable
 * 
 * cdef class PySpinodalData:             # <<<<<<<<<<<<<<
 *     cpdef public vector[double] tau, delta, M1
 * 
 */
struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData {
  PyObject_HEAD
  std::vector<double>  tau;
  std::vector<double>  delta;
  std::vector<double>  M1;
};


/* "AbstractState.pxd":47
 *     cpdef public vector[double] tau, delta, M1
 * 
 * cdef class AbstractState:             # <<<<<<<<<<<<<<
 *     cdef cAbstractState.AbstractState *thisptr     # hold a C++ instance which we're wrapping
 *     cpdef update(self, constants_header.input_pairs iInput1, double Value1, double Value2)
 */
struct __pyx_obj_8CoolProp_8CoolProp_AbstractState {
  PyObject_HEAD
  struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *__pyx_vtab;
  CoolProp::AbstractState *thisptr;
};


/* "CoolProp/CoolProp.pxd":11
 * include "AbstractState.pxd"
 * 
 * cdef class State:             # <<<<<<<<<<<<<<
 *     cdef AbstractState pAS
 *     cdef readonly bytes Fluid, phase
 */
struct __pyx_obj_8CoolProp_8CoolProp_State {
  PyObject_HEAD
  struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *__pyx_vtab;
  struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *pAS;
  PyObject *Fluid;
  PyObject *phase;
  int iFluid;
  int iParam1;
  int iParam2;
  int iOutput;
  double T_;
  double rho_;
  double p_;
};



/* "AbstractState.pyx":26
 *     pass
 * 
 * cdef class AbstractState:             # <<<<<<<<<<<<<<
 *     """
 *     This class is a one-to-one python wrapper of the :cpapi:`AbstractState` class
 */

struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState {
  PyObject *(*update)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::input_pairs, double, double, int __pyx_skip_dispatch);
  PyObject *(*update_with_guesses)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::input_pairs, double, double, struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *, int __pyx_skip_dispatch);
  PyObject *(*set_mole_fractions)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::vector<double> , int __pyx_skip_dispatch);
  PyObject *(*set_mass_fractions)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::vector<double> , int __pyx_skip_dispatch);
  PyObject *(*set_volu_fractions)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::vector<double> , int __pyx_skip_dispatch);
  std::string (*get_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*apply_simple_mixing_rule)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, size_t, std::string, int __pyx_skip_dispatch);
  PyObject *(*name)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*backend_name)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*fluid_names)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*fluid_param_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, int __pyx_skip_dispatch);
  PyObject *(*set_fluid_parameter_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, std::string, double, int __pyx_skip_dispatch);
  double (*get_fluid_parameter_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, std::string, int __pyx_skip_dispatch);
  PyObject *(*change_EOS)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, std::string, int __pyx_skip_dispatch);
  CoolProp::phases (*phase)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*specify_phase)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::phases, int __pyx_skip_dispatch);
  PyObject *(*unspecify_phase)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*Tmin)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*Tmax)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*pmax)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*Ttriple)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*T_critical)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*rhomass_critical)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*rhomolar_critical)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*p_critical)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*all_critical_points)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*criticality_contour_values)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*build_spinodal)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *(*get_spinodal_data)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*T_reducing)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*rhomolar_reducing)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*rhomass_reducing)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*tangent_plane_distance)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, double, double, std::vector<double> , int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance *__pyx_optional_args);
  double (*T)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*p)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*Q)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*rhomolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*hmolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*smolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*umolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*cpmolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*cp0molar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*cvmolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*rhomass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*hmass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*smass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*umass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*cpmass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*cp0mass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*cvmass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*gibbsmass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*gibbsmolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*helmholtzmass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*helmholtzmolar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*speed_sound)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*gas_constant)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*tau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*delta)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*viscosity)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*conductivity)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*conformal_state)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, __pyx_t_8CoolProp_8typedefs_CoolPropDbl, __pyx_t_8CoolProp_8typedefs_CoolPropDbl, int __pyx_skip_dispatch);
  PyObject *(*conductivity_contributions)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*viscosity_contributions)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*surface_tension)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*Prandtl)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*Bvirial)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*Cvirial)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*PIP)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*fundamental_derivative_of_gas_dynamics)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*isothermal_compressibility)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*isobaric_expansion_coefficient)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*fugacity)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, int __pyx_skip_dispatch);
  double (*fugacity_coefficient)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, int __pyx_skip_dispatch);
  double (*chemical_potential)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, int __pyx_skip_dispatch);
  double (*gibbsmolar_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*gibbsmass_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*hmolar_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*hmass_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*smolar_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*smass_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*umolar_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*umass_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*volumemolar_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*volumemass_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*helmholtzmolar_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*helmholtzmass_excess)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*molar_mass)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*acentric_factor)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*true_critical_point)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*get_fluid_constant)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, CoolProp::parameters, int __pyx_skip_dispatch);
  double (*keyed_output)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch);
  double (*trivial_keyed_output)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch);
  double (*saturated_liquid_keyed_output)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch);
  double (*saturated_vapor_keyed_output)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch);
  PyObject *(*ideal_curve)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*first_partial_deriv)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*second_partial_deriv)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*first_saturation_deriv)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*second_saturation_deriv)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch);
  double (*first_two_phase_deriv)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch);
  double (*second_two_phase_deriv)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch);
  double (*first_two_phase_deriv_splined)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, double, int __pyx_skip_dispatch);
  double (*melting_line)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, double, int __pyx_skip_dispatch);
  bool (*has_melting_line)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  double (*saturation_ancillary)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int, CoolProp::parameters, double, int __pyx_skip_dispatch);
  PyObject *(*build_phase_envelope)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, int __pyx_skip_dispatch);
  struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *(*get_phase_envelope_data)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*mole_fractions_liquid)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*mole_fractions_vapor)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*get_mass_fractions)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*get_mole_fractions)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*alpha0)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*dalpha0_dDelta)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*dalpha0_dTau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d2alpha0_dDelta2)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d2alpha0_dDelta_dTau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d2alpha0_dTau2)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alpha0_dTau3)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alpha0_dDelta_dTau2)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alpha0_dDelta2_dTau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alpha0_dDelta3)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*alphar)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*dalphar_dDelta)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*dalphar_dTau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d2alphar_dDelta2)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d2alphar_dDelta_dTau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d2alphar_dTau2)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alphar_dDelta3)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alphar_dDelta2_dTau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alphar_dDelta_dTau2)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d3alphar_dTau3)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d4alphar_dDelta4)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d4alphar_dDelta3_dTau)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d4alphar_dDelta2_dTau2)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d4alphar_dDelta_dTau3)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl (*d4alphar_dTau4)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_0set_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, char *, char *, std::string, double, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_1set_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, double, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_2set_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, double, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_3set_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, double, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_4set_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, short, short, std::string, double, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_5set_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, std::string, double, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_6set_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, long, long, std::string, double, int __pyx_skip_dispatch);
  double (*__pyx_fuse_0get_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, char *, char *, std::string, int __pyx_skip_dispatch);
  double (*__pyx_fuse_1get_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, int __pyx_skip_dispatch);
  double (*__pyx_fuse_2get_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, int __pyx_skip_dispatch);
  double (*__pyx_fuse_3get_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, int __pyx_skip_dispatch);
  double (*__pyx_fuse_4get_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, short, short, std::string, int __pyx_skip_dispatch);
  double (*__pyx_fuse_5get_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, std::string, int __pyx_skip_dispatch);
  double (*__pyx_fuse_6get_binary_interaction_double)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, long, long, std::string, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_0set_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, char *, char *, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_1set_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_2set_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_3set_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_4set_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, short, short, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_5set_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*__pyx_fuse_6set_binary_interaction_string)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, long, long, std::string, std::string, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *__pyx_vtabptr_8CoolProp_8CoolProp_AbstractState;


/* "CoolProp/CoolProp.pyx":609
 * cdef dict paras_inverse = {v:k for k,v in paras.iteritems()}
 * 
 * cdef class State:             # <<<<<<<<<<<<<<
 *     """
 *     A class that contains all the code that represents a thermodynamic state
 */

struct __pyx_vtabstruct_8CoolProp_8CoolProp_State {
  PyObject *(*set_Fluid)(struct __pyx_obj_8CoolProp_8CoolProp_State *, std::string, std::string, int __pyx_skip_dispatch);
  PyObject *(*speed_test)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int, int __pyx_skip_dispatch);
  PyObject *(*update)(struct __pyx_obj_8CoolProp_8CoolProp_State *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*update_ph)(struct __pyx_obj_8CoolProp_8CoolProp_State *, double, double, int __pyx_skip_dispatch);
  PyObject *(*update_Trho)(struct __pyx_obj_8CoolProp_8CoolProp_State *, double, double, int __pyx_skip_dispatch);
  struct __pyx_obj_8CoolProp_8CoolProp_State *(*copy)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*Props)(struct __pyx_obj_8CoolProp_8CoolProp_State *, CoolProp::parameters, int __pyx_skip_dispatch);
  long (*Phase)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_Q)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_T)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_p)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_h)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_rho)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_s)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_u)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_visc)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_cond)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_cp)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_cp0)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_cv)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_MM)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_dpdT)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  double (*get_speed_sound)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  PyObject *(*get_Tsat)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat *__pyx_optional_args);
  PyObject *(*get_subcooling)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
  PyObject *(*get_superheat)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *__pyx_vtabptr_8CoolProp_8CoolProp_State;

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

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

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

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

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

/* 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, int 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

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

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

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

/* 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);
        Py_SIZE(list) = len+1;
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#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);

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

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

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

/* UnpackUnboundCMethod.proto */
typedef struct {
    PyObject *type;
    PyObject **method_name;
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;

/* CallUnboundCMethod1.proto */
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
#else
#define __Pyx_CallUnboundCMethod1(cfunc, self, arg)  __Pyx__CallUnboundCMethod1(cfunc, self, arg)
#endif

/* CallUnboundCMethod0.proto */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CallUnboundCMethod0(cfunc, self)\
    (likely((cfunc)->func) ?\
        (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
         (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
            (PY_VERSION_HEX >= 0x030700A0 ?\
                (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
                (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
          (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
            (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
            (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
               ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
               __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
        __Pyx__CallUnboundCMethod0(cfunc, self))
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#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);

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

/* KeywordStringCheck.proto */
static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);

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

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

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

/* SetItemInt.proto */
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
                                               int is_list, int wraparound, int boundscheck);

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

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

/* UnpackTupleError.proto */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto */
#define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
    (likely(is_tuple || PyTuple_Check(tuple)) ?\
        (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
            __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
            (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
        __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
static int __Pyx_unpack_tuple2_generic(
    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

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

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

/* 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);
        Py_SIZE(list) = len+1;
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

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

/* StringJoin.proto */
#if PY_MAJOR_VERSION < 3
#define __Pyx_PyString_Join __Pyx_PyBytes_Join
#define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v))
#else
#define __Pyx_PyString_Join PyUnicode_Join
#define __Pyx_PyBaseString_Join PyUnicode_Join
#endif
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION < 3
    #define __Pyx_PyBytes_Join _PyString_Join
    #else
    #define __Pyx_PyBytes_Join _PyBytes_Join
    #endif
#else
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values);
#endif

/* py_dict_items.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);

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

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

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

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

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

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

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

/* CythonFunction.proto */
#define __Pyx_CyFunction_USED 1
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#define __Pyx_CyFunction_GetClassObj(f)\
    (((__pyx_CyFunctionObject *) (f))->func_classobj)
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
    PyCFunctionObject func;
#if PY_VERSION_HEX < 0x030500A0
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj;
    void *defaults;
    int defaults_pyobjects;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_Check(obj)  (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
#define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\
    __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code)
static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *self,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(void);

/* FusedFunction.proto */
typedef struct {
    __pyx_CyFunctionObject func;
    PyObject *__signatures__;
    PyObject *type;
    PyObject *self;
} __pyx_FusedFunctionObject;
#define __pyx_FusedFunction_NewEx(ml, flags, qualname, self, module, globals, code)\
        __pyx_FusedFunction_New(__pyx_FusedFunctionType, ml, flags, qualname, self, module, globals, code)
static PyObject *__pyx_FusedFunction_New(PyTypeObject *type,
                                         PyMethodDef *ml, int flags,
                                         PyObject *qualname, PyObject *self,
                                         PyObject *module, PyObject *globals,
                                         PyObject *code);
static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self);
static PyTypeObject *__pyx_FusedFunctionType = NULL;
static int __pyx_FusedFunction_init(void);
#define __Pyx_FusedFunction_USED

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

/* None.proto */
#include <new>

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

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::parameters value);

/* CppExceptionConversion.proto */
#ifndef __Pyx_CppExn2PyErr
#include <new>
#include <typeinfo>
#include <stdexcept>
#include <ios>
static void __Pyx_CppExn2PyErr() {
  try {
    if (PyErr_Occurred())
      ; // let the latest Python exn pass through and ignore the current one
    else
      throw;
  } catch (const std::bad_alloc& exn) {
    PyErr_SetString(PyExc_MemoryError, exn.what());
  } catch (const std::bad_cast& exn) {
    PyErr_SetString(PyExc_TypeError, exn.what());
  } catch (const std::bad_typeid& exn) {
    PyErr_SetString(PyExc_TypeError, exn.what());
  } catch (const std::domain_error& exn) {
    PyErr_SetString(PyExc_ValueError, exn.what());
  } catch (const std::invalid_argument& exn) {
    PyErr_SetString(PyExc_ValueError, exn.what());
  } catch (const std::ios_base::failure& exn) {
    PyErr_SetString(PyExc_IOError, exn.what());
  } catch (const std::out_of_range& exn) {
    PyErr_SetString(PyExc_IndexError, exn.what());
  } catch (const std::overflow_error& exn) {
    PyErr_SetString(PyExc_OverflowError, exn.what());
  } catch (const std::range_error& exn) {
    PyErr_SetString(PyExc_ArithmeticError, exn.what());
  } catch (const std::underflow_error& exn) {
    PyErr_SetString(PyExc_ArithmeticError, exn.what());
  } catch (const std::exception& exn) {
    PyErr_SetString(PyExc_RuntimeError, exn.what());
  }
  catch (...)
  {
    PyErr_SetString(PyExc_RuntimeError, "Unknown exception");
  }
}
#endif

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

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_CoolProp_3a__3a_phases(CoolProp::phases value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_short(short value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_CoolProp_3a__3a_input_pairs(CoolProp::input_pairs value);

/* Print.proto */
static int __Pyx_Print(PyObject*, PyObject *, int);
#if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
static PyObject* __pyx_print = 0;
static PyObject* __pyx_print_kwargs = 0;
#endif

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

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

/* CIntFromPy.proto */
static CYTHON_INLINE CoolProp::phases __Pyx_PyInt_As_CoolProp_3a__3a_phases(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE short __Pyx_PyInt_As_short(PyObject *);

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

/* CIntFromPy.proto */
static CYTHON_INLINE CoolProp::input_pairs __Pyx_PyInt_As_CoolProp_3a__3a_input_pairs(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE CoolProp::parameters __Pyx_PyInt_As_CoolProp_3a__3a_parameters(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE configuration_keys __Pyx_PyInt_As_configuration_keys(PyObject *);

/* PrintOne.proto */
static int __Pyx_PrintOne(PyObject* stream, PyObject *o);

/* ImportNumPyArray.proto */
static PyObject *__pyx_numpy_ndarray = NULL;
static PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void);

/* 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)

/* CStringEquals.proto */
static CYTHON_INLINE int __Pyx_StrEq(const char *, const char *);

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

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

static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_param_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_key, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_backend_name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_names(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static CoolProp::phases __pyx_f_8CoolProp_8CoolProp_13AbstractState_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_specify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::phases __pyx_v_phase, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_unspecify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_change_EOS(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_EOS_name, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_apply_simple_mixing_rule(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, size_t __pyx_v_j, std::string __pyx_v_model, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static double __pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static double __pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static double __pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static double __pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static double __pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static double __pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static double __pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_update(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_update_with_guesses(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2, struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_guesses, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_volu_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmin(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_pmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Ttriple(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_T_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_p_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_all_critical_points(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_criticality_contour_values(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_build_spinodal(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_spinodal_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_T_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, double __pyx_v_T, double __pyx_v_p, std::vector<double>  __pyx_v_w, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance *__pyx_optional_args); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, CoolProp::parameters __pyx_v_param, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_trivial_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_liquid_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_vapor_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_T(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_p(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Q(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0molar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_tau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_delta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_molar_mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_acentric_factor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gas_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_surface_tension(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Prandtl(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Bvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Cvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_fundamental_derivative_of_gas_dynamics(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_PIP(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_isobaric_expansion_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_isothermal_compressibility(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_chemical_potential(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_liquid(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_vapor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_true_critical_point(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_conformal_state(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_reference_fluid, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_T, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_rho, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT, CoolProp::parameters __pyx_v_CONSTANT, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_CONSTANT1, CoolProp::parameters __pyx_v_WRT2, CoolProp::parameters __pyx_v_CONSTANT2, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF1, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_WRT2, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of1, CoolProp::parameters __pyx_v_Wrt1, CoolProp::parameters __pyx_v_Constant1, CoolProp::parameters __pyx_v_Wrt2, CoolProp::parameters __pyx_v_Constant2, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv_splined(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant, double __pyx_v_x_end, int __pyx_skip_dispatch); /* proto*/
static int __pyx_f_8CoolProp_8CoolProp_13AbstractState_has_melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_param, int __pyx_v_given, double __pyx_v_value, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturation_ancillary(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_param, int __pyx_v_Q, CoolProp::parameters __pyx_v_given, double __pyx_v_value, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_build_phase_envelope(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type, int __pyx_skip_dispatch); /* proto*/
static struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_phase_envelope_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_ideal_curve(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_alpha0(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_alphar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dTau4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta2_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta3_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_set_Fluid(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, std::string __pyx_v_Fluid, std::string __pyx_v_backend, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_update_ph(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_p, double __pyx_v_h, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_update_Trho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_T, double __pyx_v_rho, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_update(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v_params, int __pyx_skip_dispatch); /* proto*/
static long __pyx_f_8CoolProp_8CoolProp_5State_Phase(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_Props(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_Q(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_MM(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_rho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_p(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_T(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_h(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_u(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_s(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cp0(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cp(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cv(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_visc(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cond(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_get_Tsat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat *__pyx_optional_args); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_get_superheat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_get_subcooling(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_dpdT(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_speed_test(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_v_N, int __pyx_skip_dispatch); /* proto*/
static struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_f_8CoolProp_8CoolProp_5State_copy(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/

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

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

/* Module declarations from 'cython' */

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

/* Module declarations from 'CoolProp.typedefs' */

/* Module declarations from 'libcpp' */

/* Module declarations from 'CoolProp' */

/* Module declarations from 'CoolProp.constants_header' */

/* Module declarations from 'CoolProp.cAbstractState' */

/* Module declarations from 'CoolProp.CoolProp' */
static PyTypeObject *__pyx_ptype_8CoolProp_8CoolProp_PyPhaseEnvelopeData = 0;
static PyTypeObject *__pyx_ptype_8CoolProp_8CoolProp_PyGuessesStructure = 0;
static PyTypeObject *__pyx_ptype_8CoolProp_8CoolProp_PyCriticalState = 0;
static PyTypeObject *__pyx_ptype_8CoolProp_8CoolProp_PySpinodalData = 0;
static PyTypeObject *__pyx_ptype_8CoolProp_8CoolProp_AbstractState = 0;
static PyTypeObject *__pyx_ptype_8CoolProp_8CoolProp_State = 0;
static PyObject *__pyx_v_8CoolProp_8CoolProp_paras = 0;
static PyObject *__pyx_v_8CoolProp_8CoolProp_paras_inverse = 0;
static PyObject *__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k;
static PyObject *__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v;
static int __pyx_f_8CoolProp_8CoolProp_iterable(PyObject *); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_ndarray_or_iterable(PyObject *); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_HAPropsSI(std::string, std::string, PyObject *, std::string, PyObject *, std::string, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_HAProps(std::string, std::string, PyObject *, std::string, PyObject *, std::string, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_HAProps_Aux(PyObject *, double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_cair_sat(double, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_generate_update_pair(CoolProp::parameters, double, CoolProp::parameters, double, int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_config_as_json_string(int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_config_key_description(std::string, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_as_json_string(std::string, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_double(configuration_keys, double, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_string(configuration_keys, std::string, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_bool(configuration_keys, int, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_get_config_double(configuration_keys, int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_config_string(configuration_keys, int __pyx_skip_dispatch); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_config_bool(configuration_keys, int __pyx_skip_dispatch); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_parameter_index(std::string, int __pyx_skip_dispatch); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_phase_index(std::string, int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_parameter_information(int, std::string, int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_mixture_binary_pair_data(PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_mixture_binary_pair_data(PyObject *, PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_add_fluids_as_JSON(PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_get_global_param_string(std::string, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_is_trivial_parameter(int, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_get_fluid_param_string(std::string, std::string, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_apply_simple_mixing_rule(PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_departure_functions(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_saturation_ancillary(std::string, std::string, int, std::string, double, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___Props_err1(PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___Props_err2(PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_Props(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_Props *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_PhaseSI(PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_PropsSI(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_PropsSI *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_FluidsList(int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_get_aliases(std::string, int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_REFPROPname(std::string, int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_BibTeXKey(std::string, std::string, int __pyx_skip_dispatch); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_errstr(int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_debug_level(int, int __pyx_skip_dispatch); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_debug_level(int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_extract_backend(std::string, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_extract_fractions(std::string, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_toSI(CoolProp::parameters, double); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyPhaseEnvelopeData__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *, PyObject *); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyCriticalState__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *, PyObject *); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyGuessesStructure__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *, PyObject *); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PySpinodalData__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *, PyObject *); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_State__set_state(struct __pyx_obj_8CoolProp_8CoolProp_State *, PyObject *); /*proto*/
static PyObject *__pyx_convert_vector_to_py_double(const std::vector<double>  &); /*proto*/
static std::vector<double>  __pyx_convert_vector_from_py_double(PyObject *); /*proto*/
static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyStr_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_std__in_string(std::string const &); /*proto*/
static PyObject *__pyx_convert_vector_to_py_std_3a__3a_string(const std::vector<std::string>  &); /*proto*/
static PyObject *__pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(const std::vector<__pyx_t_8CoolProp_8typedefs_CoolPropDbl>  &); /*proto*/
static PyObject *__pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(const std::vector<std::vector<double> >  &); /*proto*/
static std::vector<std::string>  __pyx_convert_vector_from_py_std_3a__3a_string(PyObject *); /*proto*/
#define __Pyx_MODULE_NAME "CoolProp.CoolProp"
extern int __pyx_module_is_main_CoolProp__CoolProp;
int __pyx_module_is_main_CoolProp__CoolProp = 0;

/* Implementation of 'CoolProp.CoolProp' */
static PyObject *__pyx_builtin_DeprecationWarning;
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_zip;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_max;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_NotImplementedError;
static const char __pyx_k_A[] = "A";
static const char __pyx_k_C[] = "C";
static const char __pyx_k_D[] = "D";
static const char __pyx_k_H[] = "H";
static const char __pyx_k_K[] = "K";
static const char __pyx_k_L[] = "L";
static const char __pyx_k_M[] = "M";
static const char __pyx_k_O[] = "O";
static const char __pyx_k_P[] = "P";
static const char __pyx_k_Q[] = "Q";
static const char __pyx_k_S[] = "S";
static const char __pyx_k_T[] = "T";
static const char __pyx_k_U[] = "U";
static const char __pyx_k_V[] = "V";
static const char __pyx_k_d[] = "d";
static const char __pyx_k_h[] = "h";
static const char __pyx_k_i[] = "i";
static const char __pyx_k_j[] = "j";
static const char __pyx_k_k[] = "k";
static const char __pyx_k_p[] = "p";
static const char __pyx_k_s[] = "s";
static const char __pyx_k_u[] = "u";
static const char __pyx_k_w[] = "w";
static const char __pyx_k_C0[] = "C0";
static const char __pyx_k_MM[] = "MM";
static const char __pyx_k_OF[] = "OF";
static const char __pyx_k_Of[] = "Of";
static const char __pyx_k__3[] = "                                                                                                    ";
static const char __pyx_k__4[] = "()";
static const char __pyx_k__5[] = "|";
static const char __pyx_k_cp[] = "cp";
static const char __pyx_k_cv[] = "cv";
static const char __pyx_k_n1[] = "n1";
static const char __pyx_k_n2[] = "n2";
static const char __pyx_k_np[] = "np";
static const char __pyx_k_OF1[] = "OF1";
static const char __pyx_k_Of1[] = "Of1";
static const char __pyx_k_PIP[] = "PIP";
static const char __pyx_k_WRT[] = "WRT";
static const char __pyx_k_Wrt[] = "Wrt";
static const char __pyx_k__15[] = "&";
static const char __pyx_k__17[] = ",";
static const char __pyx_k__19[] = "::";
static const char __pyx_k__20[] = "?";
static const char __pyx_k__21[] = "\077\077";
static const char __pyx_k__22[] = "[";
static const char __pyx_k__23[] = "]";
static const char __pyx_k__26[] = "\n";
static const char __pyx_k__28[] = " = ";
static const char __pyx_k__29[] = " ";
static const char __pyx_k__31[] = "*";
static const char __pyx_k_cp0[] = "cp0";
static const char __pyx_k_end[] = "end";
static const char __pyx_k_err[] = "err";
static const char __pyx_k_fcn[] = "fcn";
static const char __pyx_k_gas[] = "gas";
static const char __pyx_k_in1[] = "in1";
static const char __pyx_k_in2[] = "in2";
static const char __pyx_k_in3[] = "in3";
static const char __pyx_k_in4[] = "in4";
static const char __pyx_k_in5[] = "in5";
static const char __pyx_k_in6[] = "in6";
static const char __pyx_k_in7[] = "in7";
static const char __pyx_k_int[] = "int";
static const char __pyx_k_kPa[] = "kPa";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_max[] = "max";
static const char __pyx_k_new[] = "__new__";
static const char __pyx_k_out[] = "out";
static const char __pyx_k_rho[] = "rho";
static const char __pyx_k_tau[] = "tau";
static const char __pyx_k_val[] = "val";
static const char __pyx_k_zip[] = "zip";
static const char __pyx_k_CAS1[] = "CAS1";
static const char __pyx_k_CAS2[] = "CAS2";
static const char __pyx_k_Pa_s[] = "Pa-s";
static const char __pyx_k_Tmax[] = "Tmax";
static const char __pyx_k_Tmin[] = "Tmin";
static const char __pyx_k_Tsat[] = "Tsat";
static const char __pyx_k_WRT1[] = "WRT1";
static const char __pyx_k_WRT2[] = "WRT2";
static const char __pyx_k_Wrt1[] = "Wrt1";
static const char __pyx_k_Wrt2[] = "Wrt2";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_char[] = "char *";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_dpdT[] = "dpdT";
static const char __pyx_k_file[] = "file";
static const char __pyx_k_in1n[] = "in1n";
static const char __pyx_k_in2n[] = "in2n";
static const char __pyx_k_in3n[] = "in3n";
static const char __pyx_k_info[] = "info";
static const char __pyx_k_join[] = "join";
static const char __pyx_k_key1[] = "key1";
static const char __pyx_k_key2[] = "key2";
static const char __pyx_k_long[] = "long";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_math[] = "math";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_pmax[] = "pmax";
static const char __pyx_k_prod[] = "prod";
static const char __pyx_k_rule[] = "rule";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_time[] = "time";
static const char __pyx_k_visc[] = "visc";
static const char __pyx_k_warn[] = "warn";
static const char __pyx_k_Fluid[] = "Fluid";
static const char __pyx_k_Phase[] = "Phase";
static const char __pyx_k_Props[] = "Props";
static const char __pyx_k_State[] = "State";
static const char __pyx_k_array[] = "array";
static const char __pyx_k_ascii[] = "ascii";
static const char __pyx_k_bytes[] = "bytes";
static const char __pyx_k_clock[] = "clock";
static const char __pyx_k_delta[] = "delta";
static const char __pyx_k_err_s[] = "{err:s}";
static const char __pyx_k_fluid[] = "fluid";
static const char __pyx_k_get_Q[] = "get_Q";
static const char __pyx_k_get_T[] = "get_T";
static const char __pyx_k_get_h[] = "get_h";
static const char __pyx_k_get_p[] = "get_p";
static const char __pyx_k_get_s[] = "get_s";
static const char __pyx_k_get_u[] = "get_u";
static const char __pyx_k_given[] = "given";
static const char __pyx_k_hmass[] = "hmass";
static const char __pyx_k_input[] = "input";
static const char __pyx_k_ipair[] = "ipair";
static const char __pyx_k_isinf[] = "isinf";
static const char __pyx_k_isnan[] = "isnan";
static const char __pyx_k_items[] = "items";
static const char __pyx_k_kJ_kg[] = "kJ/kg";
static const char __pyx_k_kPa_K[] = "kPa/K";
static const char __pyx_k_kg_kg[] = "kg/kg";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_model[] = "model";
static const char __pyx_k_numpy[] = "numpy";
static const char __pyx_k_param[] = "param";
static const char __pyx_k_phase[] = "phase";
static const char __pyx_k_print[] = "print";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_shape[] = "shape";
static const char __pyx_k_short[] = "short";
static const char __pyx_k_smass[] = "smass";
static const char __pyx_k_split[] = "split";
static const char __pyx_k_strip[] = "strip";
static const char __pyx_k_umass[] = "umass";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_x_end[] = "x_end";
static const char __pyx_k_BibTeX[] = "BibTeX-";
static const char __pyx_k_Input1[] = "Input1";
static const char __pyx_k_Input2[] = "Input2";
static const char __pyx_k_Input3[] = "Input3";
static const char __pyx_k_Value1[] = "Value1";
static const char __pyx_k_Value2[] = "Value2";
static const char __pyx_k_alpha0[] = "alpha0";
static const char __pyx_k_alphar[] = "alphar";
static const char __pyx_k_cpmass[] = "cpmass";
static const char __pyx_k_cvmass[] = "cvmass";
static const char __pyx_k_dilute[] = "dilute";
static const char __pyx_k_encode[] = "encode";
static const char __pyx_k_format[] = "format";
static const char __pyx_k_get_MM[] = "get_MM";
static const char __pyx_k_get_cp[] = "get_cp";
static const char __pyx_k_get_cv[] = "get_cv";
static const char __pyx_k_hmolar[] = "hmolar";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_kW_m_K[] = "kW/m/K";
static const char __pyx_k_kg_m_3[] = "kg/m^3";
static const char __pyx_k_kwargs[] = "kwargs";
static const char __pyx_k_liquid[] = "liquid";
static const char __pyx_k_module[] = "module";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_output[] = "output";
static const char __pyx_k_pickle[] = "pickle";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_retval[] = "retval";
static const char __pyx_k_rstrip[] = "rstrip";
static const char __pyx_k_smolar[] = "smolar";
static const char __pyx_k_string[] = "string";
static const char __pyx_k_umolar[] = "umolar";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_value1[] = "value1";
static const char __pyx_k_value2[] = "value2";
static const char __pyx_k_Bvirial[] = "Bvirial";
static const char __pyx_k_Cvirial[] = "Cvirial";
static const char __pyx_k_Fluid_2[] = "_Fluid";
static const char __pyx_k_Prandtl[] = "Prandtl";
static const char __pyx_k_PropsSI[] = "PropsSI";
static const char __pyx_k_Ttriple[] = "Ttriple";
static const char __pyx_k_aliases[] = "aliases";
static const char __pyx_k_backend[] = "backend";
static const char __pyx_k_cp0mass[] = "cp0mass";
static const char __pyx_k_cpmolar[] = "cpmolar";
static const char __pyx_k_cvmolar[] = "cvmolar";
static const char __pyx_k_default[] = "default";
static const char __pyx_k_get_cp0[] = "get_cp0";
static const char __pyx_k_get_rho[] = "get_rho";
static const char __pyx_k_guesses[] = "guesses";
static const char __pyx_k_kJ_kg_K[] = "kJ/kg/K";
static const char __pyx_k_kg_kmol[] = "kg/kmol";
static const char __pyx_k_ndarray[] = "ndarray";
static const char __pyx_k_param_2[] = "_param";
static const char __pyx_k_phase_2[] = "phase = ";
static const char __pyx_k_reshape[] = "reshape";
static const char __pyx_k_rhomass[] = "rhomass";
static const char __pyx_k_squeeze[] = "squeeze";
static const char __pyx_k_unicode[] = "unicode";
static const char __pyx_k_CONSTANT[] = "CONSTANT";
static const char __pyx_k_Constant[] = "Constant";
static const char __pyx_k_CoolProp[] = "CoolProp";
static const char __pyx_k_EOS_name[] = "EOS_name";
static const char __pyx_k_KeyError[] = "KeyError";
static const char __pyx_k_NO_UNITS[] = " NO UNITS";
static const char __pyx_k_category[] = "category";
static const char __pyx_k_cp0molar[] = "cp0molar";
static const char __pyx_k_critical[] = "critical";
static const char __pyx_k_defaults[] = "defaults";
static const char __pyx_k_fugacity[] = "fugacity";
static const char __pyx_k_get_Tsat[] = "get_Tsat";
static const char __pyx_k_get_cond[] = "get_cond";
static const char __pyx_k_get_dpdT[] = "get_dpdT";
static const char __pyx_k_get_visc[] = "get_visc";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_pyx_type[] = "__pyx_type";
static const char __pyx_k_residual[] = "residual";
static const char __pyx_k_rhomolar[] = "rhomolar";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_warnings[] = "warnings";
static const char __pyx_k_CONSTANT1[] = "CONSTANT1";
static const char __pyx_k_CONSTANT2[] = "CONSTANT2";
static const char __pyx_k_Constant1[] = "Constant1";
static const char __pyx_k_Constant2[] = "Constant2";
static const char __pyx_k_FluidName[] = "FluidName";
static const char __pyx_k_StateDict[] = "StateDict";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_constants[] = "constants";
static const char __pyx_k_errstring[] = "errstring";
static const char __pyx_k_gibbsmass[] = "gibbsmass";
static const char __pyx_k_iteritems[] = "iteritems";
static const char __pyx_k_parameter[] = "parameter";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_set_Fluid[] = "set_Fluid";
static const char __pyx_k_superheat[] = "superheat";
static const char __pyx_k_update_ph[] = "update_ph";
static const char __pyx_k_viscosity[] = "viscosity";
static const char __pyx_k_FluidsList[] = "FluidsList";
static const char __pyx_k_Input1Name[] = "Input1Name";
static const char __pyx_k_Input2Name[] = "Input2Name";
static const char __pyx_k_Input3Name[] = "Input3Name";
static const char __pyx_k_JSONstring[] = "JSONstring";
static const char __pyx_k_OutputName[] = "OutputName";
static const char __pyx_k_T_critical[] = "T_critical";
static const char __pyx_k_T_reducing[] = "T_reducing";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_change_EOS[] = "change_EOS";
static const char __pyx_k_gibbsmolar[] = "gibbsmolar";
static const char __pyx_k_is_CPFluid[] = "is_CPFluid";
static const char __pyx_k_molar_mass[] = "molar_mass";
static const char __pyx_k_p_critical[] = "p_critical";
static const char __pyx_k_pyx_result[] = "__pyx_result";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_speed_test[] = "speed_test";
static const char __pyx_k_subcooling[] = "subcooling";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_PickleError[] = "PickleError";
static const char __pyx_k_fluid_names[] = "fluid_names";
static const char __pyx_k_ideal_curve[] = "ideal_curve";
static const char __pyx_k_speed_sound[] = "speed_sound";
static const char __pyx_k_update_Trho[] = "update_Trho";
static const char __pyx_k_CoolProp_pyx[] = "CoolProp.pyx";
static const char __pyx_k_REFPROP_name[] = "REFPROP_name";
static const char __pyx_k_backend_name[] = "backend_name";
static const char __pyx_k_conductivity[] = "conductivity";
static const char __pyx_k_dalpha0_dTau[] = "dalpha0_dTau";
static const char __pyx_k_dalphar_dTau[] = "dalphar_dTau";
static const char __pyx_k_gas_constant[] = "gas_constant";
static const char __pyx_k_hmass_excess[] = "hmass_excess";
static const char __pyx_k_keyed_output[] = "keyed_output";
static const char __pyx_k_melting_line[] = "melting_line";
static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
static const char __pyx_k_rebuildState[] = "rebuildState";
static const char __pyx_k_smass_excess[] = "smass_excess";
static const char __pyx_k_stringsource[] = "stringsource";
static const char __pyx_k_umass_excess[] = "umass_excess";
static const char __pyx_k_AbstractState[] = "AbstractState";
static const char __pyx_k_get_superheat[] = "get_superheat";
static const char __pyx_k_helmholtzmass[] = "helmholtzmass";
static const char __pyx_k_hmolar_excess[] = "hmolar_excess";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_smolar_excess[] = "smolar_excess";
static const char __pyx_k_specify_phase[] = "specify_phase";
static const char __pyx_k_umolar_excess[] = "umolar_excess";
static const char __pyx_k_PySpinodalData[] = "PySpinodalData";
static const char __pyx_k_build_spinodal[] = "build_spinodal";
static const char __pyx_k_d2alpha0_dTau2[] = "d2alpha0_dTau2";
static const char __pyx_k_d2alphar_dTau2[] = "d2alphar_dTau2";
static const char __pyx_k_d3alpha0_dTau3[] = "d3alpha0_dTau3";
static const char __pyx_k_d3alphar_dTau3[] = "d3alphar_dTau3";
static const char __pyx_k_d4alphar_dTau4[] = "d4alphar_dTau4";
static const char __pyx_k_d_P_d_T_Dmolar[] = "d(P)/d(T)|Dmolar";
static const char __pyx_k_dalpha0_dDelta[] = "dalpha0_dDelta";
static const char __pyx_k_dalphar_dDelta[] = "dalphar_dDelta";
static const char __pyx_k_filterwarnings[] = "filterwarnings";
static const char __pyx_k_get_subcooling[] = "get_subcooling";
static const char __pyx_k_helmholtzmolar[] = "helmholtzmolar";
static const char __pyx_k_rhomolar_guess[] = "rhomolar_guess";
static const char __pyx_k_PyCriticalState[] = "PyCriticalState";
static const char __pyx_k_acentric_factor[] = "acentric_factor";
static const char __pyx_k_conformal_state[] = "conformal_state";
static const char __pyx_k_get_speed_sound[] = "get_speed_sound";
static const char __pyx_k_initial_density[] = "initial_density";
static const char __pyx_k_numpy_supported[] = "_numpy_supported";
static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
static const char __pyx_k_reference_fluid[] = "reference_fluid";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_surface_tension[] = "surface_tension";
static const char __pyx_k_unspecify_phase[] = "unspecify_phase";
static const char __pyx_k_d2alpha0_dDelta2[] = "d2alpha0_dDelta2";
static const char __pyx_k_d2alphar_dDelta2[] = "d2alphar_dDelta2";
static const char __pyx_k_d3alpha0_dDelta3[] = "d3alpha0_dDelta3";
static const char __pyx_k_d3alphar_dDelta3[] = "d3alphar_dDelta3";
static const char __pyx_k_d4alphar_dDelta4[] = "d4alphar_dDelta4";
static const char __pyx_k_gibbsmass_excess[] = "gibbsmass_excess";
static const char __pyx_k_has_melting_line[] = "has_melting_line";
static const char __pyx_k_rhomass_critical[] = "rhomass_critical";
static const char __pyx_k_rhomass_reducing[] = "rhomass_reducing";
static const char __pyx_k_AbstractState_pyx[] = "AbstractState.pyx";
static const char __pyx_k_CoolProp_CoolProp[] = "CoolProp.CoolProp";
static const char __pyx_k_get_spinodal_data[] = "get_spinodal_data";
static const char __pyx_k_gibbsmolar_excess[] = "gibbsmolar_excess";
static const char __pyx_k_rhomolar_critical[] = "rhomolar_critical";
static const char __pyx_k_rhomolar_reducing[] = "rhomolar_reducing";
static const char __pyx_k_volumemass_excess[] = "volumemass_excess";
static const char __pyx_k_DeprecationWarning[] = "DeprecationWarning";
static const char __pyx_k_PyGuessesStructure[] = "PyGuessesStructure";
static const char __pyx_k_chemical_potential[] = "chemical_potential";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_fluid_param_string[] = "fluid_param_string";
static const char __pyx_k_get_fluid_constant[] = "get_fluid_constant";
static const char __pyx_k_get_mass_fractions[] = "get_mass_fractions";
static const char __pyx_k_get_mole_fractions[] = "get_mole_fractions";
static const char __pyx_k_pyx_unpickle_State[] = "__pyx_unpickle_State";
static const char __pyx_k_set_mass_fractions[] = "set_mass_fractions";
static const char __pyx_k_set_mole_fractions[] = "set_mole_fractions";
static const char __pyx_k_set_volu_fractions[] = "set_volu_fractions";
static const char __pyx_k_volumemolar_excess[] = "volumemolar_excess";
static const char __pyx_k_NotImplementedError[] = "NotImplementedError";
static const char __pyx_k_PyPhaseEnvelopeData[] = "PyPhaseEnvelopeData";
static const char __pyx_k_all_critical_points[] = "all_critical_points";
static const char __pyx_k_first_partial_deriv[] = "first_partial_deriv";
static const char __pyx_k_set_reference_state[] = "set_reference_state";
static const char __pyx_k_true_critical_point[] = "true_critical_point";
static const char __pyx_k_update_with_guesses[] = "update_with_guesses";
static const char __pyx_k_build_phase_envelope[] = "build_phase_envelope";
static const char __pyx_k_d2alpha0_dDelta_dTau[] = "d2alpha0_dDelta_dTau";
static const char __pyx_k_d2alphar_dDelta_dTau[] = "d2alphar_dDelta_dTau";
static const char __pyx_k_fugacity_coefficient[] = "fugacity_coefficient";
static const char __pyx_k_helmholtzmass_excess[] = "helmholtzmass_excess";
static const char __pyx_k_mole_fractions_vapor[] = "mole_fractions_vapor";
static const char __pyx_k_saturation_ancillary[] = "saturation_ancillary";
static const char __pyx_k_second_partial_deriv[] = "second_partial_deriv";
static const char __pyx_k_trivial_keyed_output[] = "trivial_keyed_output";
static const char __pyx_k_d3alpha0_dDelta2_dTau[] = "d3alpha0_dDelta2_dTau";
static const char __pyx_k_d3alpha0_dDelta_dTau2[] = "d3alpha0_dDelta_dTau2";
static const char __pyx_k_d3alphar_dDelta2_dTau[] = "d3alphar_dDelta2_dTau";
static const char __pyx_k_d3alphar_dDelta_dTau2[] = "d3alphar_dDelta_dTau2";
static const char __pyx_k_d4alphar_dDelta3_dTau[] = "d4alphar_dDelta3_dTau";
static const char __pyx_k_d4alphar_dDelta_dTau3[] = "d4alphar_dDelta_dTau3";
static const char __pyx_k_first_two_phase_deriv[] = "first_two_phase_deriv";
static const char __pyx_k_helmholtzmolar_excess[] = "helmholtzmolar_excess";
static const char __pyx_k_mole_fractions_liquid[] = "mole_fractions_liquid";
static const char __pyx_k_Your_output_is_invalid[] = "Your output is invalid";
static const char __pyx_k_d4alphar_dDelta2_dTau2[] = "d4alphar_dDelta2_dTau2";
static const char __pyx_k_first_saturation_deriv[] = "first_saturation_deriv";
static const char __pyx_k_key_is_invalid_to_toSI[] = "key is invalid to toSI";
static const char __pyx_k_second_two_phase_deriv[] = "second_two_phase_deriv";
static const char __pyx_k_tangent_plane_distance[] = "tangent_plane_distance";
static const char __pyx_k_get_phase_envelope_data[] = "get_phase_envelope_data";
static const char __pyx_k_second_saturation_deriv[] = "second_saturation_deriv";
static const char __pyx_k_viscosity_contributions[] = "viscosity_contributions";
static const char __pyx_k_Invalid_number_of_inputs[] = "Invalid number of inputs";
static const char __pyx_k_apply_simple_mixing_rule[] = "apply_simple_mixing_rule";
static const char __pyx_k_conductivity_contributions[] = "conductivity_contributions";
static const char __pyx_k_criticality_contour_values[] = "criticality_contour_values";
static const char __pyx_k_get_fluid_parameter_double[] = "get_fluid_parameter_double";
static const char __pyx_k_input_7_cannot_be_provided[] = "input #7 cannot be provided";
static const char __pyx_k_isothermal_compressibility[] = "isothermal_compressibility";
static const char __pyx_k_set_fluid_parameter_double[] = "set_fluid_parameter_double";
static const char __pyx_k_No_matching_signature_found[] = "No matching signature found";
static const char __pyx_k_pyx_unpickle_PySpinodalData[] = "__pyx_unpickle_PySpinodalData";
static const char __pyx_k_pyx_unpickle_PyCriticalState[] = "__pyx_unpickle_PyCriticalState";
static const char __pyx_k_saturated_vapor_keyed_output[] = "saturated_vapor_keyed_output";
static const char __pyx_k_err_s_inputs_were_in1_s_in2_s[] = "{err:s} :: inputs were :\"{in1:s}\",\"{in2:s}\"";
static const char __pyx_k_first_two_phase_deriv_splined[] = "first_two_phase_deriv_splined";
static const char __pyx_k_get_binary_interaction_double[] = "get_binary_interaction_double";
static const char __pyx_k_get_binary_interaction_string[] = "get_binary_interaction_string";
static const char __pyx_k_saturated_liquid_keyed_output[] = "saturated_liquid_keyed_output";
static const char __pyx_k_set_binary_interaction_double[] = "set_binary_interaction_double";
static const char __pyx_k_set_binary_interaction_string[] = "set_binary_interaction_string";
static const char __pyx_k_Input_3_is_not_one_dimensional[] = "Input 3 is not one-dimensional";
static const char __pyx_k_Input_5_is_not_one_dimensional[] = "Input 5 is not one-dimensional";
static const char __pyx_k_err_s_inputs_were_out_s_in1n_s[] = "{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ";
static const char __pyx_k_fcn_s_failed_ungracefully_with[] = "{fcn:s} failed ungracefully with inputs:\"{in1:s}\",\"{in2:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues";
static const char __pyx_k_isobaric_expansion_coefficient[] = "isobaric_expansion_coefficient";
static const char __pyx_k_pyx_fuse_0get_binary_interacti[] = "__pyx_fuse_0get_binary_interaction_double";
static const char __pyx_k_pyx_fuse_0set_binary_interacti[] = "__pyx_fuse_0set_binary_interaction_double";
static const char __pyx_k_pyx_fuse_1get_binary_interacti[] = "__pyx_fuse_1get_binary_interaction_double";
static const char __pyx_k_pyx_fuse_1set_binary_interacti[] = "__pyx_fuse_1set_binary_interaction_double";
static const char __pyx_k_pyx_fuse_2get_binary_interacti[] = "__pyx_fuse_2get_binary_interaction_double";
static const char __pyx_k_pyx_fuse_2set_binary_interacti[] = "__pyx_fuse_2set_binary_interaction_double";
static const char __pyx_k_pyx_fuse_3get_binary_interacti[] = "__pyx_fuse_3get_binary_interaction_double";
static const char __pyx_k_pyx_fuse_3set_binary_interacti[] = "__pyx_fuse_3set_binary_interaction_double";
static const char __pyx_k_pyx_fuse_4get_binary_interacti[] = "__pyx_fuse_4get_binary_interaction_double";
static const char __pyx_k_pyx_fuse_4set_binary_interacti[] = "__pyx_fuse_4set_binary_interaction_double";
static const char __pyx_k_pyx_fuse_5get_binary_interacti[] = "__pyx_fuse_5get_binary_interaction_double";
static const char __pyx_k_pyx_fuse_5set_binary_interacti[] = "__pyx_fuse_5set_binary_interaction_double";
static const char __pyx_k_pyx_fuse_6get_binary_interacti[] = "__pyx_fuse_6get_binary_interaction_double";
static const char __pyx_k_pyx_fuse_6set_binary_interacti[] = "__pyx_fuse_6set_binary_interaction_double";
static const char __pyx_k_pyx_unpickle_PyGuessesStructur[] = "__pyx_unpickle_PyGuessesStructure";
static const char __pyx_k_pyx_unpickle_PyPhaseEnvelopeDa[] = "__pyx_unpickle_PyPhaseEnvelopeData";
static const char __pyx_k_Elapsed_time_for_0_d_calls_at_1[] = "Elapsed time for {0:d} calls at {1:g} us/call";
static const char __pyx_k_Iterable_inputs_are_not_all_the[] = "Iterable inputs are not all the same length.  Lengths: ";
static const char __pyx_k_M_involves_basically_no_computa[] = "'M' involves basically no computational effort and is a good measure of the function call overhead";
static const char __pyx_k_fcn_s_failed_ungracefully_input[] = "{fcn:s} failed ungracefully :: inputs were:\"{in1:s}\",\"{in2:s}\",{in3:0.16e},\"{in4:s}\",{in5:0.16e},\"{in6:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues";
static const char __pyx_k_AbstractState___pyx_fuse_0get_bi[] = "AbstractState.__pyx_fuse_0get_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_0set_bi[] = "AbstractState.__pyx_fuse_0set_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_1get_bi[] = "AbstractState.__pyx_fuse_1get_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_1set_bi[] = "AbstractState.__pyx_fuse_1set_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_2get_bi[] = "AbstractState.__pyx_fuse_2get_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_2set_bi[] = "AbstractState.__pyx_fuse_2set_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_3get_bi[] = "AbstractState.__pyx_fuse_3get_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_3set_bi[] = "AbstractState.__pyx_fuse_3set_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_4get_bi[] = "AbstractState.__pyx_fuse_4get_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_4set_bi[] = "AbstractState.__pyx_fuse_4set_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_5get_bi[] = "AbstractState.__pyx_fuse_5get_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_5set_bi[] = "AbstractState.__pyx_fuse_5set_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_6get_bi[] = "AbstractState.__pyx_fuse_6get_binary_interaction_double";
static const char __pyx_k_AbstractState___pyx_fuse_6set_bi[] = "AbstractState.__pyx_fuse_6set_binary_interaction_double";
static const char __pyx_k_AbstractState_get_binary_interac[] = "AbstractState.get_binary_interaction_double";
static const char __pyx_k_AbstractState_set_binary_interac[] = "AbstractState.set_binary_interaction_double";
static const char __pyx_k_Call_to_the_AbstractState_for_mo[] = "Call to the AbstractState for molar mass (fast)";
static const char __pyx_k_Call_to_the_Python_call_layer_Co[] = "Call to the Python call layer (CoolProp.CoolProp.Props)";
static const char __pyx_k_Call_to_the_c_layer_using_intege[] = "Call to the c++ layer using integers";
static const char __pyx_k_Direct_c_call_to_CoolProp_withou[] = "Direct c++ call to CoolProp without the Python call layer (_Props function)";
static const char __pyx_k_Elapsed_time_for_0_d_calls_for_1[] = "Elapsed time for {0:d} calls for \"{1:s}\" at {2:g} us/call";
static const char __pyx_k_Expected_at_least_d_argument_s_g[] = "Expected at least %d argument%s, got %d";
static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types";
static const char __pyx_k_HAPropsSI_failed_ungracefully_wi[] = "HAPropsSI failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ";
static const char __pyx_k_HAProps_failed_ungracefully_with[] = "HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ";
static const char __pyx_k_Incompatible_checksums_s_vs_0x0a[] = "Incompatible checksums (%s vs 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))";
static const char __pyx_k_Incompatible_checksums_s_vs_0x59[] = "Incompatible checksums (%s vs 0x592f492 = (M1, delta, tau))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xa5[] = "Incompatible checksums (%s vs 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xb5[] = "Incompatible checksums (%s vs 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))";
static const char __pyx_k_Incompatible_checksums_s_vs_0xfb[] = "Incompatible checksums (%s vs 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))";
static const char __pyx_k_Length_of_input_name_1_must_be_1[] = "Length of input name #1 must be 1 character";
static const char __pyx_k_Length_of_input_name_2_must_be_1[] = "Length of input name #2 must be 1 character";
static const char __pyx_k_Numerical_inputs_to_HAPropsSI_mu[] = "Numerical inputs to HAPropsSI must be ints, floats, lists, or 1D numpy arrays.";
static const char __pyx_k_Numerical_inputs_to_HAProps_must[] = "Numerical inputs to HAProps must be ints, floats, lists, or 1D numpy arrays.";
static const char __pyx_k_Phase_not_defined_for_fluids_oth[] = "Phase not defined for fluids other than CoolProp fluids";
static const char __pyx_k_Props_function_is_deprecated_Use[] = "Props() function is deprecated; Use the PropsSI() function";
static const char __pyx_k_Sizes_of_Prop1_n1_d_and_Prop2_n2[] = "Sizes of Prop1 {n1:d} and Prop2 {n2:d} to PropsSI are not the same";
static const char __pyx_k_err_s_inputs_were_out_s_in1n_s_2[] = "{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}";
static const char __pyx_k_fundamental_derivative_of_gas_dy[] = "fundamental_derivative_of_gas_dynamics";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_pyx_fuse_0set_binary_interacti_2[] = "__pyx_fuse_0set_binary_interaction_string";
static const char __pyx_k_pyx_fuse_1set_binary_interacti_2[] = "__pyx_fuse_1set_binary_interaction_string";
static const char __pyx_k_pyx_fuse_2set_binary_interacti_2[] = "__pyx_fuse_2set_binary_interaction_string";
static const char __pyx_k_pyx_fuse_3set_binary_interacti_2[] = "__pyx_fuse_3set_binary_interaction_string";
static const char __pyx_k_pyx_fuse_4set_binary_interacti_2[] = "__pyx_fuse_4set_binary_interaction_string";
static const char __pyx_k_pyx_fuse_5set_binary_interacti_2[] = "__pyx_fuse_5set_binary_interaction_string";
static const char __pyx_k_pyx_fuse_6set_binary_interacti_2[] = "__pyx_fuse_6set_binary_interaction_string";
static const char __pyx_k_AbstractState___pyx_fuse_0set_bi_2[] = "AbstractState.__pyx_fuse_0set_binary_interaction_string";
static const char __pyx_k_AbstractState___pyx_fuse_1set_bi_2[] = "AbstractState.__pyx_fuse_1set_binary_interaction_string";
static const char __pyx_k_AbstractState___pyx_fuse_2set_bi_2[] = "AbstractState.__pyx_fuse_2set_binary_interaction_string";
static const char __pyx_k_AbstractState___pyx_fuse_3set_bi_2[] = "AbstractState.__pyx_fuse_3set_binary_interaction_string";
static const char __pyx_k_AbstractState___pyx_fuse_4set_bi_2[] = "AbstractState.__pyx_fuse_4set_binary_interaction_string";
static const char __pyx_k_AbstractState___pyx_fuse_5set_bi_2[] = "AbstractState.__pyx_fuse_5set_binary_interaction_string";
static const char __pyx_k_AbstractState___pyx_fuse_6set_bi_2[] = "AbstractState.__pyx_fuse_6set_binary_interaction_string";
static const char __pyx_k_AbstractState_set_binary_interac_2[] = "AbstractState.set_binary_interaction_string";
static PyObject *__pyx_n_s_A;
static PyObject *__pyx_n_s_AbstractState;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_0get_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_0set_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_0set_bi_2;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_1get_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_1set_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_1set_bi_2;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_2get_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_2set_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_2set_bi_2;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_3get_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_3set_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_3set_bi_2;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_4get_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_4set_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_4set_bi_2;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_5get_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_5set_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_5set_bi_2;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_6get_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_6set_bi;
static PyObject *__pyx_n_s_AbstractState___pyx_fuse_6set_bi_2;
static PyObject *__pyx_n_s_AbstractState_get_binary_interac;
static PyObject *__pyx_kp_s_AbstractState_pyx;
static PyObject *__pyx_n_s_AbstractState_set_binary_interac;
static PyObject *__pyx_n_s_AbstractState_set_binary_interac_2;
static PyObject *__pyx_kp_s_BibTeX;
static PyObject *__pyx_n_s_Bvirial;
static PyObject *__pyx_n_s_C;
static PyObject *__pyx_n_s_C0;
static PyObject *__pyx_n_s_CAS1;
static PyObject *__pyx_n_s_CAS2;
static PyObject *__pyx_n_s_CONSTANT;
static PyObject *__pyx_n_s_CONSTANT1;
static PyObject *__pyx_n_s_CONSTANT2;
static PyObject *__pyx_kp_s_Call_to_the_AbstractState_for_mo;
static PyObject *__pyx_kp_s_Call_to_the_Python_call_layer_Co;
static PyObject *__pyx_kp_s_Call_to_the_c_layer_using_intege;
static PyObject *__pyx_n_s_Constant;
static PyObject *__pyx_n_s_Constant1;
static PyObject *__pyx_n_s_Constant2;
static PyObject *__pyx_n_s_CoolProp;
static PyObject *__pyx_n_s_CoolProp_CoolProp;
static PyObject *__pyx_kp_s_CoolProp_pyx;
static PyObject *__pyx_n_s_Cvirial;
static PyObject *__pyx_n_b_D;
static PyObject *__pyx_n_s_D;
static PyObject *__pyx_n_s_DeprecationWarning;
static PyObject *__pyx_kp_s_Direct_c_call_to_CoolProp_withou;
static PyObject *__pyx_n_s_EOS_name;
static PyObject *__pyx_kp_s_Elapsed_time_for_0_d_calls_at_1;
static PyObject *__pyx_kp_s_Elapsed_time_for_0_d_calls_for_1;
static PyObject *__pyx_kp_s_Expected_at_least_d_argument_s_g;
static PyObject *__pyx_n_s_Fluid;
static PyObject *__pyx_n_s_FluidName;
static PyObject *__pyx_n_s_Fluid_2;
static PyObject *__pyx_n_b_FluidsList;
static PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg;
static PyObject *__pyx_n_s_H;
static PyObject *__pyx_kp_s_HAPropsSI_failed_ungracefully_wi;
static PyObject *__pyx_kp_s_HAProps_failed_ungracefully_with;
static PyObject *__pyx_n_s_ImportError;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x0a;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0x59;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xa5;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb5;
static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xfb;
static PyObject *__pyx_n_s_Input1;
static PyObject *__pyx_n_s_Input1Name;
static PyObject *__pyx_n_s_Input2;
static PyObject *__pyx_n_s_Input2Name;
static PyObject *__pyx_n_s_Input3;
static PyObject *__pyx_n_s_Input3Name;
static PyObject *__pyx_kp_s_Input_3_is_not_one_dimensional;
static PyObject *__pyx_kp_s_Input_5_is_not_one_dimensional;
static PyObject *__pyx_kp_s_Invalid_number_of_inputs;
static PyObject *__pyx_kp_s_Iterable_inputs_are_not_all_the;
static PyObject *__pyx_n_s_JSONstring;
static PyObject *__pyx_n_s_K;
static PyObject *__pyx_n_s_KeyError;
static PyObject *__pyx_n_s_L;
static PyObject *__pyx_kp_s_Length_of_input_name_1_must_be_1;
static PyObject *__pyx_kp_s_Length_of_input_name_2_must_be_1;
static PyObject *__pyx_n_s_M;
static PyObject *__pyx_n_s_MM;
static PyObject *__pyx_kp_s_M_involves_basically_no_computa;
static PyObject *__pyx_kp_s_NO_UNITS;
static PyObject *__pyx_kp_s_No_matching_signature_found;
static PyObject *__pyx_n_s_NotImplementedError;
static PyObject *__pyx_kp_s_Numerical_inputs_to_HAPropsSI_mu;
static PyObject *__pyx_kp_s_Numerical_inputs_to_HAProps_must;
static PyObject *__pyx_n_s_O;
static PyObject *__pyx_n_s_OF;
static PyObject *__pyx_n_s_OF1;
static PyObject *__pyx_n_s_Of;
static PyObject *__pyx_n_s_Of1;
static PyObject *__pyx_n_s_OutputName;
static PyObject *__pyx_n_s_P;
static PyObject *__pyx_n_s_PIP;
static PyObject *__pyx_kp_s_Pa_s;
static PyObject *__pyx_n_s_Phase;
static PyObject *__pyx_kp_s_Phase_not_defined_for_fluids_oth;
static PyObject *__pyx_n_s_PickleError;
static PyObject *__pyx_n_s_Prandtl;
static PyObject *__pyx_n_s_Props;
static PyObject *__pyx_n_s_PropsSI;
static PyObject *__pyx_kp_s_Props_function_is_deprecated_Use;
static PyObject *__pyx_n_s_PyCriticalState;
static PyObject *__pyx_n_s_PyGuessesStructure;
static PyObject *__pyx_n_s_PyPhaseEnvelopeData;
static PyObject *__pyx_n_s_PySpinodalData;
static PyObject *__pyx_n_s_Q;
static PyObject *__pyx_n_b_REFPROP_name;
static PyObject *__pyx_n_s_S;
static PyObject *__pyx_kp_s_Sizes_of_Prop1_n1_d_and_Prop2_n2;
static PyObject *__pyx_n_s_State;
static PyObject *__pyx_n_s_StateDict;
static PyObject *__pyx_n_b_T;
static PyObject *__pyx_n_s_T;
static PyObject *__pyx_n_s_T_critical;
static PyObject *__pyx_n_s_T_reducing;
static PyObject *__pyx_n_s_Tmax;
static PyObject *__pyx_n_s_Tmin;
static PyObject *__pyx_n_s_Tsat;
static PyObject *__pyx_n_s_Ttriple;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_n_s_U;
static PyObject *__pyx_n_s_V;
static PyObject *__pyx_n_s_Value1;
static PyObject *__pyx_n_s_Value2;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_n_s_WRT;
static PyObject *__pyx_n_s_WRT1;
static PyObject *__pyx_n_s_WRT2;
static PyObject *__pyx_n_s_Wrt;
static PyObject *__pyx_n_s_Wrt1;
static PyObject *__pyx_n_s_Wrt2;
static PyObject *__pyx_kp_s_Your_output_is_invalid;
static PyObject *__pyx_kp_s__15;
static PyObject *__pyx_kp_s__17;
static PyObject *__pyx_kp_b__19;
static PyObject *__pyx_kp_u__20;
static PyObject *__pyx_kp_b__21;
static PyObject *__pyx_kp_s__22;
static PyObject *__pyx_kp_s__23;
static PyObject *__pyx_kp_s__26;
static PyObject *__pyx_kp_s__28;
static PyObject *__pyx_kp_s__29;
static PyObject *__pyx_kp_s__3;
static PyObject *__pyx_n_s__31;
static PyObject *__pyx_kp_s__4;
static PyObject *__pyx_kp_s__5;
static PyObject *__pyx_n_s_acentric_factor;
static PyObject *__pyx_n_b_aliases;
static PyObject *__pyx_n_s_all_critical_points;
static PyObject *__pyx_n_s_alpha0;
static PyObject *__pyx_n_s_alphar;
static PyObject *__pyx_n_s_apply_simple_mixing_rule;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_n_s_array;
static PyObject *__pyx_n_s_ascii;
static PyObject *__pyx_n_s_backend;
static PyObject *__pyx_n_s_backend_name;
static PyObject *__pyx_n_s_build_phase_envelope;
static PyObject *__pyx_n_s_build_spinodal;
static PyObject *__pyx_n_s_bytes;
static PyObject *__pyx_n_s_category;
static PyObject *__pyx_n_s_change_EOS;
static PyObject *__pyx_kp_s_char;
static PyObject *__pyx_n_s_chemical_potential;
static PyObject *__pyx_n_s_cline_in_traceback;
static PyObject *__pyx_n_s_clock;
static PyObject *__pyx_n_s_conductivity;
static PyObject *__pyx_n_s_conductivity_contributions;
static PyObject *__pyx_n_s_conformal_state;
static PyObject *__pyx_n_s_constants;
static PyObject *__pyx_n_s_copy;
static PyObject *__pyx_n_s_cp;
static PyObject *__pyx_n_s_cp0;
static PyObject *__pyx_n_s_cp0mass;
static PyObject *__pyx_n_s_cp0molar;
static PyObject *__pyx_n_s_cpmass;
static PyObject *__pyx_n_s_cpmolar;
static PyObject *__pyx_n_s_critical;
static PyObject *__pyx_n_s_criticality_contour_values;
static PyObject *__pyx_n_s_cv;
static PyObject *__pyx_n_s_cvmass;
static PyObject *__pyx_n_s_cvmolar;
static PyObject *__pyx_n_s_d;
static PyObject *__pyx_n_s_d2alpha0_dDelta2;
static PyObject *__pyx_n_s_d2alpha0_dDelta_dTau;
static PyObject *__pyx_n_s_d2alpha0_dTau2;
static PyObject *__pyx_n_s_d2alphar_dDelta2;
static PyObject *__pyx_n_s_d2alphar_dDelta_dTau;
static PyObject *__pyx_n_s_d2alphar_dTau2;
static PyObject *__pyx_n_s_d3alpha0_dDelta2_dTau;
static PyObject *__pyx_n_s_d3alpha0_dDelta3;
static PyObject *__pyx_n_s_d3alpha0_dDelta_dTau2;
static PyObject *__pyx_n_s_d3alpha0_dTau3;
static PyObject *__pyx_n_s_d3alphar_dDelta2_dTau;
static PyObject *__pyx_n_s_d3alphar_dDelta3;
static PyObject *__pyx_n_s_d3alphar_dDelta_dTau2;
static PyObject *__pyx_n_s_d3alphar_dTau3;
static PyObject *__pyx_n_s_d4alphar_dDelta2_dTau2;
static PyObject *__pyx_n_s_d4alphar_dDelta3_dTau;
static PyObject *__pyx_n_s_d4alphar_dDelta4;
static PyObject *__pyx_n_s_d4alphar_dDelta_dTau3;
static PyObject *__pyx_n_s_d4alphar_dTau4;
static PyObject *__pyx_kp_s_d_P_d_T_Dmolar;
static PyObject *__pyx_n_s_dalpha0_dDelta;
static PyObject *__pyx_n_s_dalpha0_dTau;
static PyObject *__pyx_n_s_dalphar_dDelta;
static PyObject *__pyx_n_s_dalphar_dTau;
static PyObject *__pyx_n_s_default;
static PyObject *__pyx_n_s_defaults;
static PyObject *__pyx_n_s_delta;
static PyObject *__pyx_n_s_dict;
static PyObject *__pyx_n_s_dilute;
static PyObject *__pyx_n_s_dpdT;
static PyObject *__pyx_n_s_encode;
static PyObject *__pyx_n_s_end;
static PyObject *__pyx_n_s_err;
static PyObject *__pyx_kp_s_err_s;
static PyObject *__pyx_kp_s_err_s_inputs_were_in1_s_in2_s;
static PyObject *__pyx_kp_s_err_s_inputs_were_out_s_in1n_s;
static PyObject *__pyx_kp_s_err_s_inputs_were_out_s_in1n_s_2;
static PyObject *__pyx_n_b_errstring;
static PyObject *__pyx_n_s_fcn;
static PyObject *__pyx_kp_s_fcn_s_failed_ungracefully_input;
static PyObject *__pyx_kp_s_fcn_s_failed_ungracefully_with;
static PyObject *__pyx_n_s_file;
static PyObject *__pyx_n_s_filterwarnings;
static PyObject *__pyx_n_s_first_partial_deriv;
static PyObject *__pyx_n_s_first_saturation_deriv;
static PyObject *__pyx_n_s_first_two_phase_deriv;
static PyObject *__pyx_n_s_first_two_phase_deriv_splined;
static PyObject *__pyx_n_s_fluid;
static PyObject *__pyx_n_s_fluid_names;
static PyObject *__pyx_n_s_fluid_param_string;
static PyObject *__pyx_n_s_format;
static PyObject *__pyx_n_s_fugacity;
static PyObject *__pyx_n_s_fugacity_coefficient;
static PyObject *__pyx_n_s_fundamental_derivative_of_gas_dy;
static PyObject *__pyx_n_s_gas;
static PyObject *__pyx_n_s_gas_constant;
static PyObject *__pyx_n_s_get_MM;
static PyObject *__pyx_n_s_get_Q;
static PyObject *__pyx_n_s_get_T;
static PyObject *__pyx_n_s_get_Tsat;
static PyObject *__pyx_n_s_get_binary_interaction_double;
static PyObject *__pyx_n_s_get_binary_interaction_string;
static PyObject *__pyx_n_s_get_cond;
static PyObject *__pyx_n_s_get_cp;
static PyObject *__pyx_n_s_get_cp0;
static PyObject *__pyx_n_s_get_cv;
static PyObject *__pyx_n_s_get_dpdT;
static PyObject *__pyx_n_s_get_fluid_constant;
static PyObject *__pyx_n_s_get_fluid_parameter_double;
static PyObject *__pyx_n_s_get_h;
static PyObject *__pyx_n_s_get_mass_fractions;
static PyObject *__pyx_n_s_get_mole_fractions;
static PyObject *__pyx_n_s_get_p;
static PyObject *__pyx_n_s_get_phase_envelope_data;
static PyObject *__pyx_n_s_get_rho;
static PyObject *__pyx_n_s_get_s;
static PyObject *__pyx_n_s_get_speed_sound;
static PyObject *__pyx_n_s_get_spinodal_data;
static PyObject *__pyx_n_s_get_subcooling;
static PyObject *__pyx_n_s_get_superheat;
static PyObject *__pyx_n_s_get_u;
static PyObject *__pyx_n_s_get_visc;
static PyObject *__pyx_n_s_getstate;
static PyObject *__pyx_n_s_gibbsmass;
static PyObject *__pyx_n_s_gibbsmass_excess;
static PyObject *__pyx_n_s_gibbsmolar;
static PyObject *__pyx_n_s_gibbsmolar_excess;
static PyObject *__pyx_n_s_given;
static PyObject *__pyx_n_s_guesses;
static PyObject *__pyx_n_s_h;
static PyObject *__pyx_n_s_has_melting_line;
static PyObject *__pyx_n_s_helmholtzmass;
static PyObject *__pyx_n_s_helmholtzmass_excess;
static PyObject *__pyx_n_s_helmholtzmolar;
static PyObject *__pyx_n_s_helmholtzmolar_excess;
static PyObject *__pyx_n_s_hmass;
static PyObject *__pyx_n_s_hmass_excess;
static PyObject *__pyx_n_s_hmolar;
static PyObject *__pyx_n_s_hmolar_excess;
static PyObject *__pyx_n_s_i;
static PyObject *__pyx_n_s_ideal_curve;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_s_in1;
static PyObject *__pyx_n_s_in1n;
static PyObject *__pyx_n_s_in2;
static PyObject *__pyx_n_s_in2n;
static PyObject *__pyx_n_s_in3;
static PyObject *__pyx_n_s_in3n;
static PyObject *__pyx_n_s_in4;
static PyObject *__pyx_n_s_in5;
static PyObject *__pyx_n_s_in6;
static PyObject *__pyx_n_s_in7;
static PyObject *__pyx_n_s_info;
static PyObject *__pyx_n_s_initial_density;
static PyObject *__pyx_n_s_input;
static PyObject *__pyx_kp_s_input_7_cannot_be_provided;
static PyObject *__pyx_n_s_int;
static PyObject *__pyx_n_s_ipair;
static PyObject *__pyx_n_s_is_CPFluid;
static PyObject *__pyx_n_s_isinf;
static PyObject *__pyx_n_s_isnan;
static PyObject *__pyx_n_s_isobaric_expansion_coefficient;
static PyObject *__pyx_n_s_isothermal_compressibility;
static PyObject *__pyx_n_s_items;
static PyObject *__pyx_n_s_iteritems;
static PyObject *__pyx_n_s_j;
static PyObject *__pyx_n_s_join;
static PyObject *__pyx_n_s_k;
static PyObject *__pyx_kp_s_kJ_kg;
static PyObject *__pyx_kp_s_kJ_kg_K;
static PyObject *__pyx_n_s_kPa;
static PyObject *__pyx_kp_s_kPa_K;
static PyObject *__pyx_kp_s_kW_m_K;
static PyObject *__pyx_n_s_key;
static PyObject *__pyx_n_s_key1;
static PyObject *__pyx_n_s_key2;
static PyObject *__pyx_kp_s_key_is_invalid_to_toSI;
static PyObject *__pyx_n_s_keyed_output;
static PyObject *__pyx_kp_s_kg_kg;
static PyObject *__pyx_kp_s_kg_kmol;
static PyObject *__pyx_kp_s_kg_m_3;
static PyObject *__pyx_n_s_kwargs;
static PyObject *__pyx_n_s_liquid;
static PyObject *__pyx_n_s_long;
static PyObject *__pyx_n_s_lower;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_math;
static PyObject *__pyx_n_s_max;
static PyObject *__pyx_n_s_melting_line;
static PyObject *__pyx_n_s_model;
static PyObject *__pyx_n_s_module;
static PyObject *__pyx_n_s_molar_mass;
static PyObject *__pyx_n_s_mole_fractions_liquid;
static PyObject *__pyx_n_s_mole_fractions_vapor;
static PyObject *__pyx_n_s_n1;
static PyObject *__pyx_n_s_n2;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_s_name_2;
static PyObject *__pyx_n_s_ndarray;
static PyObject *__pyx_n_s_new;
static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
static PyObject *__pyx_n_s_np;
static PyObject *__pyx_n_s_numpy;
static PyObject *__pyx_n_s_numpy_supported;
static PyObject *__pyx_n_s_out;
static PyObject *__pyx_n_s_output;
static PyObject *__pyx_n_s_p;
static PyObject *__pyx_n_s_p_critical;
static PyObject *__pyx_n_s_param;
static PyObject *__pyx_n_s_param_2;
static PyObject *__pyx_n_s_parameter;
static PyObject *__pyx_n_s_phase;
static PyObject *__pyx_kp_s_phase_2;
static PyObject *__pyx_n_s_pickle;
static PyObject *__pyx_n_s_pmax;
static PyObject *__pyx_n_s_print;
static PyObject *__pyx_n_s_prod;
static PyObject *__pyx_n_s_pyx_PickleError;
static PyObject *__pyx_n_s_pyx_checksum;
static PyObject *__pyx_n_s_pyx_fuse_0get_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_0set_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_0set_binary_interacti_2;
static PyObject *__pyx_n_s_pyx_fuse_1get_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_1set_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_1set_binary_interacti_2;
static PyObject *__pyx_n_s_pyx_fuse_2get_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_2set_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_2set_binary_interacti_2;
static PyObject *__pyx_n_s_pyx_fuse_3get_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_3set_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_3set_binary_interacti_2;
static PyObject *__pyx_n_s_pyx_fuse_4get_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_4set_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_4set_binary_interacti_2;
static PyObject *__pyx_n_s_pyx_fuse_5get_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_5set_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_5set_binary_interacti_2;
static PyObject *__pyx_n_s_pyx_fuse_6get_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_6set_binary_interacti;
static PyObject *__pyx_n_s_pyx_fuse_6set_binary_interacti_2;
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_PyCriticalState;
static PyObject *__pyx_n_s_pyx_unpickle_PyGuessesStructur;
static PyObject *__pyx_n_s_pyx_unpickle_PyPhaseEnvelopeDa;
static PyObject *__pyx_n_s_pyx_unpickle_PySpinodalData;
static PyObject *__pyx_n_s_pyx_unpickle_State;
static PyObject *__pyx_n_s_pyx_vtable;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_rebuildState;
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_reference_fluid;
static PyObject *__pyx_n_s_reshape;
static PyObject *__pyx_n_s_residual;
static PyObject *__pyx_n_s_retval;
static PyObject *__pyx_n_s_rho;
static PyObject *__pyx_n_s_rhomass;
static PyObject *__pyx_n_s_rhomass_critical;
static PyObject *__pyx_n_s_rhomass_reducing;
static PyObject *__pyx_n_s_rhomolar;
static PyObject *__pyx_n_s_rhomolar_critical;
static PyObject *__pyx_n_s_rhomolar_guess;
static PyObject *__pyx_n_s_rhomolar_reducing;
static PyObject *__pyx_n_s_rstrip;
static PyObject *__pyx_n_s_rule;
static PyObject *__pyx_n_s_s;
static PyObject *__pyx_n_s_saturated_liquid_keyed_output;
static PyObject *__pyx_n_s_saturated_vapor_keyed_output;
static PyObject *__pyx_n_s_saturation_ancillary;
static PyObject *__pyx_n_s_second_partial_deriv;
static PyObject *__pyx_n_s_second_saturation_deriv;
static PyObject *__pyx_n_s_second_two_phase_deriv;
static PyObject *__pyx_n_s_self;
static PyObject *__pyx_n_s_set_Fluid;
static PyObject *__pyx_n_s_set_binary_interaction_double;
static PyObject *__pyx_n_s_set_binary_interaction_string;
static PyObject *__pyx_n_s_set_fluid_parameter_double;
static PyObject *__pyx_n_s_set_mass_fractions;
static PyObject *__pyx_n_s_set_mole_fractions;
static PyObject *__pyx_n_s_set_reference_state;
static PyObject *__pyx_n_s_set_volu_fractions;
static PyObject *__pyx_n_s_setstate;
static PyObject *__pyx_n_s_setstate_cython;
static PyObject *__pyx_n_s_shape;
static PyObject *__pyx_n_s_short;
static PyObject *__pyx_n_s_smass;
static PyObject *__pyx_n_s_smass_excess;
static PyObject *__pyx_n_s_smolar;
static PyObject *__pyx_n_s_smolar_excess;
static PyObject *__pyx_n_s_specify_phase;
static PyObject *__pyx_n_s_speed_sound;
static PyObject *__pyx_n_s_speed_test;
static PyObject *__pyx_n_s_split;
static PyObject *__pyx_n_s_squeeze;
static PyObject *__pyx_n_s_string;
static PyObject *__pyx_kp_s_stringsource;
static PyObject *__pyx_n_s_strip;
static PyObject *__pyx_n_s_subcooling;
static PyObject *__pyx_n_s_superheat;
static PyObject *__pyx_n_s_surface_tension;
static PyObject *__pyx_n_s_tangent_plane_distance;
static PyObject *__pyx_n_s_tau;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_time;
static PyObject *__pyx_n_s_trivial_keyed_output;
static PyObject *__pyx_n_s_true_critical_point;
static PyObject *__pyx_n_s_u;
static PyObject *__pyx_n_s_umass;
static PyObject *__pyx_n_s_umass_excess;
static PyObject *__pyx_n_s_umolar;
static PyObject *__pyx_n_s_umolar_excess;
static PyObject *__pyx_n_s_unicode;
static PyObject *__pyx_n_s_unspecify_phase;
static PyObject *__pyx_n_s_update;
static PyObject *__pyx_n_s_update_Trho;
static PyObject *__pyx_n_s_update_ph;
static PyObject *__pyx_n_s_update_with_guesses;
static PyObject *__pyx_n_s_val;
static PyObject *__pyx_n_s_value;
static PyObject *__pyx_n_s_value1;
static PyObject *__pyx_n_s_value2;
static PyObject *__pyx_n_s_visc;
static PyObject *__pyx_n_s_viscosity;
static PyObject *__pyx_n_s_viscosity_contributions;
static PyObject *__pyx_n_s_volumemass_excess;
static PyObject *__pyx_n_s_volumemolar_excess;
static PyObject *__pyx_n_s_w;
static PyObject *__pyx_n_s_warn;
static PyObject *__pyx_n_s_warnings;
static PyObject *__pyx_n_s_x_end;
static PyObject *__pyx_n_s_zip;
static PyObject *__pyx_pf_8CoolProp_8CoolProp_HAPropsSI(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_OutputName, std::string __pyx_v_Input1Name, PyObject *__pyx_v_Input1, std::string __pyx_v_Input2Name, PyObject *__pyx_v_Input2, std::string __pyx_v_Input3Name, PyObject *__pyx_v_Input3); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_2HAProps(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_OutputName, std::string __pyx_v_Input1Name, PyObject *__pyx_v_Input1, std::string __pyx_v_Input2Name, PyObject *__pyx_v_Input2, std::string __pyx_v_Input3Name, PyObject *__pyx_v_Input3); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_4HAProps_Aux(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_OutputName, double __pyx_v_T, double __pyx_v_p, double __pyx_v_w); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_6cair_sat(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_T); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData___reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_2__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1T_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1p_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6hmolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6smolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6smolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6stable___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6stable_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState___reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_2__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure___init__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1T_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1p_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_2__reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_4__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_3tau___get__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_3tau_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_5delta___get__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_5delta_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2M1___get__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2M1_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData___reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_13AbstractState___cinit__(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_backend, std::string __pyx_v_fluid); /* proto */
static void __pyx_pf_8CoolProp_8CoolProp_13AbstractState_2__dealloc__(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_4fluid_param_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_6name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_8backend_name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_10fluid_names(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_12phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_14specify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::phases __pyx_v_phase); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_16unspecify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_18change_EOS(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_EOS_name); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_20apply_simple_mixing_rule(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, size_t __pyx_v_j, std::string __pyx_v_model); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_282__pyx_fuse_0set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_284__pyx_fuse_1set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_286__pyx_fuse_2set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_288__pyx_fuse_3set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_290__pyx_fuse_4set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_292__pyx_fuse_5set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_294__pyx_fuse_6set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_298__pyx_fuse_0get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_300__pyx_fuse_1get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_302__pyx_fuse_2get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_304__pyx_fuse_3get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_306__pyx_fuse_4get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_308__pyx_fuse_5get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_310__pyx_fuse_6get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_314__pyx_fuse_0set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_316__pyx_fuse_1set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_318__pyx_fuse_2set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_320__pyx_fuse_3set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_322__pyx_fuse_4set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_324__pyx_fuse_5set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_326__pyx_fuse_6set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_28get_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_30set_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_32get_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_34update(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_36update_with_guesses(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2, struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_guesses); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_38set_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_40set_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_42set_volu_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_44get_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_46get_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_48Tmin(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_50Tmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_52pmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_54Ttriple(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_56T_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_58rhomass_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_60rhomolar_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_62p_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_64all_critical_points(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_66criticality_contour_values(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_68build_spinodal(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_70get_spinodal_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_72T_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_74rhomolar_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_76rhomass_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_78tangent_plane_distance(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, double __pyx_v_T, double __pyx_v_p, std::vector<double>  __pyx_v_w, double __pyx_v_rhomolar_guess); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_80get_fluid_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, CoolProp::parameters __pyx_v_param); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_82keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_84trivial_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_86saturated_liquid_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_88saturated_vapor_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_90T(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_92p(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_94Q(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_96rhomolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_98rhomass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_100hmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_102hmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_104umolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_106umass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_108smolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_110smass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_112cpmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_114cpmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_116cp0molar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_118cp0mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_120cvmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_122cvmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_124gibbsmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_126gibbsmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_128helmholtzmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_130helmholtzmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_132tau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_134delta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_136speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_138molar_mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_140acentric_factor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_142gas_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_144viscosity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_146conductivity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_148surface_tension(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_150Prandtl(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_152Bvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_154Cvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_156fundamental_derivative_of_gas_dynamics(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_158PIP(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_160isobaric_expansion_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_162isothermal_compressibility(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_164fugacity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_166fugacity_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_168chemical_potential(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_170mole_fractions_liquid(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_172mole_fractions_vapor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_174true_critical_point(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_176conformal_state(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_reference_fluid, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_T, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_rho); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_178conductivity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_180viscosity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_182helmholtzmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_184helmholtzmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_186gibbsmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_188gibbsmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_190umolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_192umass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_194hmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_196hmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_198smolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_200smass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_202volumemolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_204volumemass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_206first_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT, CoolProp::parameters __pyx_v_CONSTANT); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_208second_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_CONSTANT1, CoolProp::parameters __pyx_v_WRT2, CoolProp::parameters __pyx_v_CONSTANT2); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_210first_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_212second_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF1, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_WRT2); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_214first_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_216second_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of1, CoolProp::parameters __pyx_v_Wrt1, CoolProp::parameters __pyx_v_Constant1, CoolProp::parameters __pyx_v_Wrt2, CoolProp::parameters __pyx_v_Constant2); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_218first_two_phase_deriv_splined(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant, double __pyx_v_x_end); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_220has_melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_222melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_param, int __pyx_v_given, double __pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_224saturation_ancillary(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_param, int __pyx_v_Q, CoolProp::parameters __pyx_v_given, double __pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_226build_phase_envelope(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_228get_phase_envelope_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_230ideal_curve(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_232alpha0(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_234dalpha0_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_236dalpha0_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_238d2alpha0_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_240d2alpha0_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_242d2alpha0_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_244d3alpha0_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_246d3alpha0_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_248d3alpha0_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_250d3alpha0_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_252alphar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_254dalphar_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_256dalphar_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_258d2alphar_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_260d2alphar_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_262d2alphar_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_264d3alphar_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_266d3alphar_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_268d3alphar_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_270d3alphar_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_272d4alphar_dTau4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_274d4alphar_dDelta_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_276d4alphar_dDelta2_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_278d4alphar_dDelta3_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_280d4alphar_dDelta4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_330__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_332__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_8set_reference_state(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_FluidName, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_10generate_update_pair(CYTHON_UNUSED PyObject *__pyx_self, CoolProp::parameters __pyx_v_key1, double __pyx_v_value1, CoolProp::parameters __pyx_v_key2, double __pyx_v_value2); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_12get_config_as_json_string(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_14config_key_description(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_16set_config_as_json_string(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_s); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_18set_config_double(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key, double __pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_20set_config_string(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key, std::string __pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_22set_config_bool(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key, int __pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_24get_config_double(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_26get_config_string(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_28get_config_bool(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_30get_parameter_index(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_32get_phase_index(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_34get_parameter_information(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_key, std::string __pyx_v_info); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_36get_mixture_binary_pair_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_38set_mixture_binary_pair_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_key, PyObject *__pyx_v_val); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_40add_fluids_as_JSON(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_backend, PyObject *__pyx_v_JSONstring); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_42get_global_param_string(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_param); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_44is_trivial_parameter(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_46get_fluid_param_string(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_fluid, std::string __pyx_v_param); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_48apply_simple_mixing_rule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_rule); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_50set_departure_functions(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_functions); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_52saturation_ancillary(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_name, std::string __pyx_v_output, int __pyx_v_Q, std::string __pyx_v_input, double __pyx_v_value); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_54__Props_err1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fcn, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_56__Props_err2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fcn, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, PyObject *__pyx_v_in6); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_58Props(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, PyObject *__pyx_v_in6); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_60PhaseSI(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_62PropsSI(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, PyObject *__pyx_v_in6, PyObject *__pyx_v_in7); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_64FluidsList(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_66get_aliases(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_Fluid); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_68get_REFPROPname(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_Fluid); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_70get_BibTeXKey(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_Fluid, std::string __pyx_v_key); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_72get_errstr(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_74set_debug_level(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_level); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_76get_debug_level(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_78extract_backend(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_in_str); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_80extract_fractions(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_flds); /* proto */
static int __pyx_pf_8CoolProp_8CoolProp_5State___init__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v__Fluid, PyObject *__pyx_v_StateDict, PyObject *__pyx_v_phase, PyObject *__pyx_v_backend); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2set_Fluid(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, std::string __pyx_v_Fluid, std::string __pyx_v_backend); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4update_ph(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_p, double __pyx_v_h); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_6update_Trho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_T, double __pyx_v_rho); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_8update(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v_params); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_10Phase(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_12Props(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_14get_Q(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1Q___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_16get_MM(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2MM___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_18get_rho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_3rho___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_20get_p(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_22get_T(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_24get_h(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1h___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_26get_u(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1u___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_28get_s(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1s___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_30get_cp0(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_3cp0___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_32get_cp(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2cp___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_34get_cv(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2cv___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_36get_speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_38get_visc(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4visc___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_40get_cond(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1k___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_42get_Tsat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_Q); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4Tsat___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_44get_superheat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_9superheat___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_46get_subcooling(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_10subcooling___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_7Prandtl___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_48get_dpdT(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4dpdT___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_50speed_test(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_v_N); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_52__str__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_54copy(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_5Fluid___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_5phase___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_56__reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_58__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_82rebuildState(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_d); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_84__pyx_unpickle_PyPhaseEnvelopeData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_86__pyx_unpickle_PyCriticalState(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_88__pyx_unpickle_PyGuessesStructure(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_90__pyx_unpickle_PySpinodalData(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8CoolProp_8CoolProp_92__pyx_unpickle_State(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PyPhaseEnvelopeData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PyGuessesStructure(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PyCriticalState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PySpinodalData(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_AbstractState(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_State(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static __Pyx_CachedCFunction __pyx_umethod_PyBytes_Type_strip = {0, &__pyx_n_s_strip, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items = {0, &__pyx_n_s_items, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyString_Type_encode = {0, &__pyx_n_s_encode, 0, 0, 0};
static PyObject *__pyx_float_1e6;
static PyObject *__pyx_int_4;
static PyObject *__pyx_int_5;
static PyObject *__pyx_int_10895678;
static PyObject *__pyx_int_93516946;
static PyObject *__pyx_int_173401925;
static PyObject *__pyx_int_190732675;
static PyObject *__pyx_int_263767809;
static PyObject *__pyx_tuple_;
static PyObject *__pyx_tuple__2;
static PyObject *__pyx_tuple__6;
static PyObject *__pyx_tuple__7;
static PyObject *__pyx_tuple__8;
static PyObject *__pyx_tuple__9;
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__16;
static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__25;
static PyObject *__pyx_tuple__27;
static PyObject *__pyx_tuple__30;
static PyObject *__pyx_tuple__32;
static PyObject *__pyx_tuple__34;
static PyObject *__pyx_tuple__36;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_tuple__40;
static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__44;
static PyObject *__pyx_tuple__46;
static PyObject *__pyx_tuple__48;
static PyObject *__pyx_tuple__50;
static PyObject *__pyx_codeobj__33;
static PyObject *__pyx_codeobj__35;
static PyObject *__pyx_codeobj__37;
static PyObject *__pyx_codeobj__39;
static PyObject *__pyx_codeobj__41;
static PyObject *__pyx_codeobj__43;
static PyObject *__pyx_codeobj__45;
static PyObject *__pyx_codeobj__47;
static PyObject *__pyx_codeobj__49;
static PyObject *__pyx_codeobj__51;
/* Late includes */

/* "CoolProp/CoolProp.pyx":103
 * from . cimport constants_header
 * 
 * cdef bint iterable(object a):             # <<<<<<<<<<<<<<
 *     """
 *     If numpy is supported, this function returns true if the argument is a
 */

static int __pyx_f_8CoolProp_8CoolProp_iterable(PyObject *__pyx_v_a) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("iterable", 0);

  /* "CoolProp/CoolProp.pyx":108
 *     numpy array or another iterable, otherwise just checks if list or tuple
 *     """
 *     if _numpy_supported:             # <<<<<<<<<<<<<<
 *         return isinstance(a,(list, tuple, np.ndarray))
 *     else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "CoolProp/CoolProp.pyx":109
 *     """
 *     if _numpy_supported:
 *         return isinstance(a,(list, tuple, np.ndarray))             # <<<<<<<<<<<<<<
 *     else:
 *         return isinstance(a,(list, tuple))
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = PyList_Check(__pyx_v_a); 
    __pyx_t_5 = (__pyx_t_4 != 0);
    if (!__pyx_t_5) {
    } else {
      __pyx_t_2 = __pyx_t_5;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_5 = PyTuple_Check(__pyx_v_a); 
    __pyx_t_4 = (__pyx_t_5 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = PyObject_IsInstance(__pyx_v_a, __pyx_t_3); 
    __pyx_t_5 = (__pyx_t_4 != 0);
    __pyx_t_2 = __pyx_t_5;
    __pyx_L4_bool_binop_done:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    goto __pyx_L0;

    /* "CoolProp/CoolProp.pyx":108
 *     numpy array or another iterable, otherwise just checks if list or tuple
 *     """
 *     if _numpy_supported:             # <<<<<<<<<<<<<<
 *         return isinstance(a,(list, tuple, np.ndarray))
 *     else:
 */
  }

  /* "CoolProp/CoolProp.pyx":111
 *         return isinstance(a,(list, tuple, np.ndarray))
 *     else:
 *         return isinstance(a,(list, tuple))             # <<<<<<<<<<<<<<
 * 
 * cdef ndarray_or_iterable(object input):
 */
  /*else*/ {
    __pyx_t_5 = PyList_Check(__pyx_v_a); 
    __pyx_t_4 = (__pyx_t_5 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_4 = PyTuple_Check(__pyx_v_a); 
    __pyx_t_5 = (__pyx_t_4 != 0);
    __pyx_t_2 = __pyx_t_5;
    __pyx_L7_bool_binop_done:;
    __pyx_r = __pyx_t_2;
    goto __pyx_L0;
  }

  /* "CoolProp/CoolProp.pyx":103
 * from . cimport constants_header
 * 
 * cdef bint iterable(object a):             # <<<<<<<<<<<<<<
 *     """
 *     If numpy is supported, this function returns true if the argument is a
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_WriteUnraisable("CoolProp.CoolProp.iterable", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":113
 *         return isinstance(a,(list, tuple))
 * 
 * cdef ndarray_or_iterable(object input):             # <<<<<<<<<<<<<<
 *     if _numpy_supported:
 *         return np.squeeze(np.array(input))
 */

static PyObject *__pyx_f_8CoolProp_8CoolProp_ndarray_or_iterable(PyObject *__pyx_v_input) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("ndarray_or_iterable", 0);

  /* "CoolProp/CoolProp.pyx":114
 * 
 * cdef ndarray_or_iterable(object input):
 *     if _numpy_supported:             # <<<<<<<<<<<<<<
 *         return np.squeeze(np.array(input))
 *     else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "CoolProp/CoolProp.pyx":115
 * cdef ndarray_or_iterable(object input):
 *     if _numpy_supported:
 *         return np.squeeze(np.array(input))             # <<<<<<<<<<<<<<
 *     else:
 *         return input
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_squeeze); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_input) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_input);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "CoolProp/CoolProp.pyx":114
 * 
 * cdef ndarray_or_iterable(object input):
 *     if _numpy_supported:             # <<<<<<<<<<<<<<
 *         return np.squeeze(np.array(input))
 *     else:
 */
  }

  /* "CoolProp/CoolProp.pyx":117
 *         return np.squeeze(np.array(input))
 *     else:
 *         return input             # <<<<<<<<<<<<<<
 * 
 * include "HumidAirProp.pyx"
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_input);
    __pyx_r = __pyx_v_input;
    goto __pyx_L0;
  }

  /* "CoolProp/CoolProp.pyx":113
 *         return isinstance(a,(list, tuple))
 * 
 * cdef ndarray_or_iterable(object input):             # <<<<<<<<<<<<<<
 *     if _numpy_supported:
 *         return np.squeeze(np.array(input))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("CoolProp.CoolProp.ndarray_or_iterable", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "HumidAirProp.pyx":3
 * #This file gets directly included in CoolProp.pyx, separate here for cleanness of code
 * 
 * cpdef HAPropsSI(string OutputName, string Input1Name, Input1, string Input2Name, Input2, string Input3Name, Input3):             # <<<<<<<<<<<<<<
 *     """
 *     Copyright Ian Bell, 2011 email: ian.h.bell@gmail.com
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_1HAPropsSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_HAPropsSI(std::string __pyx_v_OutputName, std::string __pyx_v_Input1Name, PyObject *__pyx_v_Input1, std::string __pyx_v_Input2Name, PyObject *__pyx_v_Input2, std::string __pyx_v_Input3Name, PyObject *__pyx_v_Input3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_v_val;
  std::string __pyx_v_err_string;
  PyObject *__pyx_v_iterable_lengths = NULL;
  PyObject *__pyx_v_L = NULL;
  PyObject *__pyx_v_Input1vec = NULL;
  PyObject *__pyx_v_Input2vec = NULL;
  PyObject *__pyx_v_Input3vec = NULL;
  PyObject *__pyx_v_vals = NULL;
  PyObject *__pyx_v__Input1 = NULL;
  PyObject *__pyx_v__Input2 = NULL;
  PyObject *__pyx_v__Input3 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  double __pyx_t_5;
  double __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  std::string __pyx_t_12;
  std::string __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  int __pyx_t_15;
  PyObject *(*__pyx_t_16)(PyObject *);
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *(*__pyx_t_19)(PyObject *);
  Py_ssize_t __pyx_t_20;
  __Pyx_RefNannySetupContext("HAPropsSI", 0);

  /* "HumidAirProp.pyx":41
 *     """
 * 
 *     if isinstance(Input1, (int, long, float, complex)) and isinstance(Input2, (int, long, float, complex)) and isinstance(Input3, (int, long, float, complex)):             # <<<<<<<<<<<<<<
 *         val = _HAPropsSI(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 */
  __pyx_t_3 = PyInt_Check(__pyx_v_Input1); 
  __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_Input1); 
  __pyx_t_3 = (__pyx_t_4 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_3 = PyFloat_Check(__pyx_v_Input1); 
  __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 = PyComplex_Check(__pyx_v_Input1); 
  __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_Input2); 
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_4 = PyLong_Check(__pyx_v_Input2); 
  __pyx_t_2 = (__pyx_t_4 != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_3 = __pyx_t_2;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_2 = PyFloat_Check(__pyx_v_Input2); 
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_4 = PyComplex_Check(__pyx_v_Input2); 
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L11_bool_binop_done:;
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyInt_Check(__pyx_v_Input3); 
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_4 = PyLong_Check(__pyx_v_Input3); 
  __pyx_t_3 = (__pyx_t_4 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_3 = PyFloat_Check(__pyx_v_Input3); 
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_4 = PyComplex_Check(__pyx_v_Input3); 
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L15_bool_binop_done:;
  __pyx_t_3 = (__pyx_t_2 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "HumidAirProp.pyx":42
 * 
 *     if isinstance(Input1, (int, long, float, complex)) and isinstance(Input2, (int, long, float, complex)) and isinstance(Input3, (int, long, float, complex)):
 *         val = _HAPropsSI(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)             # <<<<<<<<<<<<<<
 * 
 *         if math.isinf(val) or math.isnan(val):
 */
    __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_Input1); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 42, __pyx_L1_error)
    __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_Input2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 42, __pyx_L1_error)
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_Input3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 42, __pyx_L1_error)
    __pyx_v_val = HumidAir::HAPropsSI(__pyx_v_OutputName, __pyx_v_Input1Name, __pyx_t_5, __pyx_v_Input2Name, __pyx_t_6, __pyx_v_Input3Name, __pyx_t_7);

    /* "HumidAirProp.pyx":44
 *         val = _HAPropsSI(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 *         if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_math); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_isinf); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (!__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L20_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_math); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_isnan); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 44, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_1 = __pyx_t_3;
    __pyx_L20_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":45
 * 
 *         if math.isinf(val) or math.isnan(val):
 *             err_string = _get_global_param_string('errstring')             # <<<<<<<<<<<<<<
 *             if not len(err_string) == 0:
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 */
      __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 45, __pyx_L1_error)
      try {
        __pyx_t_13 = CoolProp::get_global_param_string(__pyx_t_12);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(1, 45, __pyx_L1_error)
      }
      __pyx_v_err_string = __pyx_t_13;

      /* "HumidAirProp.pyx":46
 *         if math.isinf(val) or math.isnan(val):
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 *             else:
 */
      __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 46, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_14 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 46, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_1 = ((!((__pyx_t_14 == 0) != 0)) != 0);
      if (unlikely(__pyx_t_1)) {

        /* "HumidAirProp.pyx":47
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))             # <<<<<<<<<<<<<<
 *             else:
 *                 raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_err_s_inputs_were_out_s_in1n_s, __pyx_n_s_format); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_err, __pyx_t_10) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_out, __pyx_t_10) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in1n, __pyx_t_10) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in1, __pyx_v_Input1) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in2n, __pyx_t_10) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in2, __pyx_v_Input2) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in3n, __pyx_t_10) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in3, __pyx_v_Input3) < 0) __PYX_ERR(1, 47, __pyx_L1_error)
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_Raise(__pyx_t_9, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __PYX_ERR(1, 47, __pyx_L1_error)

        /* "HumidAirProp.pyx":46
 *         if math.isinf(val) or math.isnan(val):
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 *             else:
 */
      }

      /* "HumidAirProp.pyx":49
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 *             else:
 *                 raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))             # <<<<<<<<<<<<<<
 * 
 *         return val #Error raised by HAProps on failure
 */
      /*else*/ {
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_HAProps_failed_ungracefully_with, __pyx_n_s_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_out, __pyx_t_8) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in1n, __pyx_t_8) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in1, __pyx_v_Input1) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in2n, __pyx_t_8) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in2, __pyx_v_Input2) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in3n, __pyx_t_8) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in3, __pyx_v_Input3) < 0) __PYX_ERR(1, 49, __pyx_L1_error)
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 49, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_Raise(__pyx_t_10, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __PYX_ERR(1, 49, __pyx_L1_error)
      }

      /* "HumidAirProp.pyx":44
 *         val = _HAPropsSI(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 *         if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:
 */
    }

    /* "HumidAirProp.pyx":51
 *                 raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 * 
 *         return val #Error raised by HAProps on failure             # <<<<<<<<<<<<<<
 * 
 *     # At least one is iterable, convert non-iterable to a list of the same length
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_10 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 51, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_r = __pyx_t_10;
    __pyx_t_10 = 0;
    goto __pyx_L0;

    /* "HumidAirProp.pyx":41
 *     """
 * 
 *     if isinstance(Input1, (int, long, float, complex)) and isinstance(Input2, (int, long, float, complex)) and isinstance(Input3, (int, long, float, complex)):             # <<<<<<<<<<<<<<
 *         val = _HAPropsSI(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 */
  }

  /* "HumidAirProp.pyx":54
 * 
 *     # At least one is iterable, convert non-iterable to a list of the same length
 *     elif iterable(Input1) or iterable(Input2) or iterable(Input3):             # <<<<<<<<<<<<<<
 * 
 *         iterable_lengths = []
 */
  __pyx_t_3 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input1) != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L23_bool_binop_done;
  }
  __pyx_t_3 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input2) != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L23_bool_binop_done;
  }
  __pyx_t_3 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input3) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L23_bool_binop_done:;
  if (likely(__pyx_t_1)) {

    /* "HumidAirProp.pyx":56
 *     elif iterable(Input1) or iterable(Input2) or iterable(Input3):
 * 
 *         iterable_lengths = []             # <<<<<<<<<<<<<<
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))
 */
    __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 56, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_v_iterable_lengths = ((PyObject*)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "HumidAirProp.pyx":57
 * 
 *         iterable_lengths = []
 *         if iterable(Input1):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):
 */
    __pyx_t_1 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input1) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":58
 *         iterable_lengths = []
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))             # <<<<<<<<<<<<<<
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))
 */
      __pyx_t_14 = PyObject_Length(__pyx_v_Input1); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 58, __pyx_L1_error)
      __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_iterable_lengths, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 58, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":57
 * 
 *         iterable_lengths = []
 *         if iterable(Input1):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):
 */
    }

    /* "HumidAirProp.pyx":59
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):
 */
    __pyx_t_1 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input2) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":60
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))             # <<<<<<<<<<<<<<
 *         if iterable(Input3):
 *             iterable_lengths.append(len(Input3))
 */
      __pyx_t_14 = PyObject_Length(__pyx_v_Input2); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 60, __pyx_L1_error)
      __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 60, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_iterable_lengths, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 60, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":59
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):
 */
    }

    /* "HumidAirProp.pyx":61
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input3))
 * 
 */
    __pyx_t_1 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input3) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":62
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):
 *             iterable_lengths.append(len(Input3))             # <<<<<<<<<<<<<<
 * 
 *         if not len(set(iterable_lengths)) == 1:
 */
      __pyx_t_14 = PyObject_Length(__pyx_v_Input3); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 62, __pyx_L1_error)
      __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_iterable_lengths, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 62, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":61
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input3))
 * 
 */
    }

    /* "HumidAirProp.pyx":64
 *             iterable_lengths.append(len(Input3))
 * 
 *         if not len(set(iterable_lengths)) == 1:             # <<<<<<<<<<<<<<
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))
 *         else:
 */
    __pyx_t_10 = PySet_New(__pyx_v_iterable_lengths); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_14 = PySet_GET_SIZE(__pyx_t_10); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 64, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_1 = ((!((__pyx_t_14 == 1) != 0)) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "HumidAirProp.pyx":65
 * 
 *         if not len(set(iterable_lengths)) == 1:
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))             # <<<<<<<<<<<<<<
 *         else:
 *             L = iterable_lengths[0]
 */
      __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_iterable_lengths); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 65, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = PyNumber_Add(__pyx_kp_s_Iterable_inputs_are_not_all_the, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 65, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 65, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_Raise(__pyx_t_10, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __PYX_ERR(1, 65, __pyx_L1_error)

      /* "HumidAirProp.pyx":64
 *             iterable_lengths.append(len(Input3))
 * 
 *         if not len(set(iterable_lengths)) == 1:             # <<<<<<<<<<<<<<
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))
 *         else:
 */
    }

    /* "HumidAirProp.pyx":67
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))
 *         else:
 *             L = iterable_lengths[0]             # <<<<<<<<<<<<<<
 * 
 *         if not iterable(Input1):
 */
    /*else*/ {
      __pyx_t_10 = __Pyx_GetItemInt_List(__pyx_v_iterable_lengths, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 67, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_v_L = __pyx_t_10;
      __pyx_t_10 = 0;
    }

    /* "HumidAirProp.pyx":69
 *             L = iterable_lengths[0]
 * 
 *         if not iterable(Input1):             # <<<<<<<<<<<<<<
 *             Input1vec = [Input1]*L
 *         else:
 */
    __pyx_t_1 = ((!(__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input1) != 0)) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":70
 * 
 *         if not iterable(Input1):
 *             Input1vec = [Input1]*L             # <<<<<<<<<<<<<<
 *         else:
 *             Input1vec = Input1
 */
      __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_Input1);
      __Pyx_GIVEREF(__pyx_v_Input1);
      PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input1);
      { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_10, __pyx_v_L); if (unlikely(!__pyx_temp)) __PYX_ERR(1, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_temp);
        __Pyx_DECREF(__pyx_t_10);
        __pyx_t_10 = __pyx_temp;
      }
      __pyx_v_Input1vec = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":69
 *             L = iterable_lengths[0]
 * 
 *         if not iterable(Input1):             # <<<<<<<<<<<<<<
 *             Input1vec = [Input1]*L
 *         else:
 */
      goto __pyx_L30;
    }

    /* "HumidAirProp.pyx":72
 *             Input1vec = [Input1]*L
 *         else:
 *             Input1vec = Input1             # <<<<<<<<<<<<<<
 * 
 *         if not iterable(Input2):
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_v_Input1);
      __pyx_v_Input1vec = __pyx_v_Input1;
    }
    __pyx_L30:;

    /* "HumidAirProp.pyx":74
 *             Input1vec = Input1
 * 
 *         if not iterable(Input2):             # <<<<<<<<<<<<<<
 *             Input2vec = [Input2]*L
 *         else:
 */
    __pyx_t_1 = ((!(__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input2) != 0)) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":75
 * 
 *         if not iterable(Input2):
 *             Input2vec = [Input2]*L             # <<<<<<<<<<<<<<
 *         else:
 *             Input2vec = Input2
 */
      __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 75, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_Input2);
      __Pyx_GIVEREF(__pyx_v_Input2);
      PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input2);
      { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_10, __pyx_v_L); if (unlikely(!__pyx_temp)) __PYX_ERR(1, 75, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_temp);
        __Pyx_DECREF(__pyx_t_10);
        __pyx_t_10 = __pyx_temp;
      }
      __pyx_v_Input2vec = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":74
 *             Input1vec = Input1
 * 
 *         if not iterable(Input2):             # <<<<<<<<<<<<<<
 *             Input2vec = [Input2]*L
 *         else:
 */
      goto __pyx_L31;
    }

    /* "HumidAirProp.pyx":77
 *             Input2vec = [Input2]*L
 *         else:
 *             Input2vec = Input2             # <<<<<<<<<<<<<<
 * 
 *         if not iterable(Input3):
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_v_Input2);
      __pyx_v_Input2vec = __pyx_v_Input2;
    }
    __pyx_L31:;

    /* "HumidAirProp.pyx":79
 *             Input2vec = Input2
 * 
 *         if not iterable(Input3):             # <<<<<<<<<<<<<<
 *             Input3vec = [Input3]*L
 *         else:
 */
    __pyx_t_1 = ((!(__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input3) != 0)) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":80
 * 
 *         if not iterable(Input3):
 *             Input3vec = [Input3]*L             # <<<<<<<<<<<<<<
 *         else:
 *             Input3vec = Input3
 */
      __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 80, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_Input3);
      __Pyx_GIVEREF(__pyx_v_Input3);
      PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input3);
      { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_10, __pyx_v_L); if (unlikely(!__pyx_temp)) __PYX_ERR(1, 80, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_temp);
        __Pyx_DECREF(__pyx_t_10);
        __pyx_t_10 = __pyx_temp;
      }
      __pyx_v_Input3vec = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":79
 *             Input2vec = Input2
 * 
 *         if not iterable(Input3):             # <<<<<<<<<<<<<<
 *             Input3vec = [Input3]*L
 *         else:
 */
      goto __pyx_L32;
    }

    /* "HumidAirProp.pyx":82
 *             Input3vec = [Input3]*L
 *         else:
 *             Input3vec = Input3             # <<<<<<<<<<<<<<
 * 
 *         vals = []
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_v_Input3);
      __pyx_v_Input3vec = __pyx_v_Input3;
    }
    __pyx_L32:;

    /* "HumidAirProp.pyx":84
 *             Input3vec = Input3
 * 
 *         vals = []             # <<<<<<<<<<<<<<
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):
 */
    __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_v_vals = ((PyObject*)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "HumidAirProp.pyx":86
 *         vals = []
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):             # <<<<<<<<<<<<<<
 *             val = _HAPropsSI(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 */
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_Input1vec);
    __Pyx_GIVEREF(__pyx_v_Input1vec);
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input1vec);
    __Pyx_INCREF(__pyx_v_Input2vec);
    __Pyx_GIVEREF(__pyx_v_Input2vec);
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_Input2vec);
    __Pyx_INCREF(__pyx_v_Input3vec);
    __Pyx_GIVEREF(__pyx_v_Input3vec);
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_Input3vec);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
      __pyx_t_10 = __pyx_t_8; __Pyx_INCREF(__pyx_t_10); __pyx_t_14 = 0;
      __pyx_t_16 = NULL;
    } else {
      __pyx_t_14 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 86, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_16 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 86, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    for (;;) {
      if (likely(!__pyx_t_16)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_8); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(1, 86, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 86, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        } else {
          if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_8); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(1, 86, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 86, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        }
      } else {
        __pyx_t_8 = __pyx_t_16(__pyx_t_10);
        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(1, 86, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
        PyObject* sequence = __pyx_t_8;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 3)) {
          if (size > 3) __Pyx_RaiseTooManyValuesError(3);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(1, 86, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); 
          __pyx_t_17 = PyTuple_GET_ITEM(sequence, 2); 
        } else {
          __pyx_t_9 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyList_GET_ITEM(sequence, 1); 
          __pyx_t_17 = PyList_GET_ITEM(sequence, 2); 
        }
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_17);
        #else
        __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_17 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        #endif
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_18 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 86, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_19 = Py_TYPE(__pyx_t_18)->tp_iternext;
        index = 0; __pyx_t_9 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_9)) goto __pyx_L35_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_9);
        index = 1; __pyx_t_11 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_11)) goto __pyx_L35_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_11);
        index = 2; __pyx_t_17 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_17)) goto __pyx_L35_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_17);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_18), 3) < 0) __PYX_ERR(1, 86, __pyx_L1_error)
        __pyx_t_19 = NULL;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        goto __pyx_L36_unpacking_done;
        __pyx_L35_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_19 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(1, 86, __pyx_L1_error)
        __pyx_L36_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v__Input1, __pyx_t_9);
      __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v__Input2, __pyx_t_11);
      __pyx_t_11 = 0;
      __Pyx_XDECREF_SET(__pyx_v__Input3, __pyx_t_17);
      __pyx_t_17 = 0;

      /* "HumidAirProp.pyx":87
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):
 *             val = _HAPropsSI(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)             # <<<<<<<<<<<<<<
 * 
 *             if math.isinf(val) or math.isnan(val):
 */
      __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v__Input1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
      __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v__Input2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
      __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v__Input3); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 87, __pyx_L1_error)
      __pyx_v_val = HumidAir::HAPropsSI(__pyx_v_OutputName, __pyx_v_Input1Name, __pyx_t_7, __pyx_v_Input2Name, __pyx_t_6, __pyx_v_Input3Name, __pyx_t_5);

      /* "HumidAirProp.pyx":89
 *             val = _HAPropsSI(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 *             if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:
 */
      __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_math); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_isinf); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_11, function);
        }
      }
      __pyx_t_8 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_9, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_17);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (!__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L38_bool_binop_done;
      }
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_math); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_isnan); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_17);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_17, function);
        }
      }
      __pyx_t_8 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_9, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_11);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 89, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_1 = __pyx_t_3;
      __pyx_L38_bool_binop_done:;
      if (__pyx_t_1) {

        /* "HumidAirProp.pyx":90
 * 
 *             if math.isinf(val) or math.isnan(val):
 *                 err_string = _get_global_param_string('errstring')             # <<<<<<<<<<<<<<
 *                 if not len(err_string) == 0:
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 */
        __pyx_t_13 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 90, __pyx_L1_error)
        try {
          __pyx_t_12 = CoolProp::get_global_param_string(__pyx_t_13);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(1, 90, __pyx_L1_error)
        }
        __pyx_v_err_string = __pyx_t_12;

        /* "HumidAirProp.pyx":91
 *             if math.isinf(val) or math.isnan(val):
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 *                 else:
 */
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 91, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_20 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_20 == ((Py_ssize_t)-1))) __PYX_ERR(1, 91, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_1 = ((!((__pyx_t_20 == 0) != 0)) != 0);
        if (unlikely(__pyx_t_1)) {

          /* "HumidAirProp.pyx":92
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))             # <<<<<<<<<<<<<<
 *                 else:
 *                     raise ValueError("HAPropsSI failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 */
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_err_s_inputs_were_out_s_in1n_s_2, __pyx_n_s_format); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_17 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_err, __pyx_t_11) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_out, __pyx_t_11) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in1n, __pyx_t_11) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in1, __pyx_v__Input1) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in2n, __pyx_t_11) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in2, __pyx_v__Input2) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in3n, __pyx_t_11) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in3, __pyx_v__Input3) < 0) __PYX_ERR(1, 92, __pyx_L1_error)
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 92, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_Raise(__pyx_t_17, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __PYX_ERR(1, 92, __pyx_L1_error)

          /* "HumidAirProp.pyx":91
 *             if math.isinf(val) or math.isnan(val):
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 *                 else:
 */
        }

        /* "HumidAirProp.pyx":94
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 *                 else:
 *                     raise ValueError("HAPropsSI failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))             # <<<<<<<<<<<<<<
 * 
 *             vals.append(val)
 */
        /*else*/ {
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_HAPropsSI_failed_ungracefully_wi, __pyx_n_s_format); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_11 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_out, __pyx_t_8) < 0) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in1n, __pyx_t_8) < 0) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in1, __pyx_v__Input1) < 0) __PYX_ERR(1, 94, __pyx_L1_error)
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in2n, __pyx_t_8) < 0) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in2, __pyx_v__Input2) < 0) __PYX_ERR(1, 94, __pyx_L1_error)
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in3n, __pyx_t_8) < 0) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in3, __pyx_v__Input3) < 0) __PYX_ERR(1, 94, __pyx_L1_error)
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_Raise(__pyx_t_11, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __PYX_ERR(1, 94, __pyx_L1_error)
        }

        /* "HumidAirProp.pyx":89
 *             val = _HAPropsSI(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 *             if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:
 */
      }

      /* "HumidAirProp.pyx":96
 *                     raise ValueError("HAPropsSI failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 * 
 *             vals.append(val)             # <<<<<<<<<<<<<<
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 */
      __pyx_t_11 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_vals, __pyx_t_11); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 96, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "HumidAirProp.pyx":86
 *         vals = []
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):             # <<<<<<<<<<<<<<
 *             val = _HAPropsSI(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

    /* "HumidAirProp.pyx":98
 *             vals.append(val)
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 98, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L42_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 98, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_Input1, __pyx_t_11); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 98, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L42_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":99
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 *             return np.array(vals).reshape(Input1.shape)             # <<<<<<<<<<<<<<
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_17);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_17, function);
        }
      }
      __pyx_t_10 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_8, __pyx_v_vals) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_vals);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_reshape); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_Input1, __pyx_n_s_shape); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_17);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_17, function);
        }
      }
      __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_8, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_10);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_r = __pyx_t_11;
      __pyx_t_11 = 0;
      goto __pyx_L0;

      /* "HumidAirProp.pyx":98
 *             vals.append(val)
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 */
    }

    /* "HumidAirProp.pyx":100
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 100, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L44_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_2 = PyObject_IsInstance(__pyx_v_Input2, __pyx_t_17); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 100, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_3 = (__pyx_t_2 != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L44_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":101
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)             # <<<<<<<<<<<<<<
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 *             return np.array(vals).reshape(Input3.shape)
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_array); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_11 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_v_vals) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_vals);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_reshape); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_Input2, __pyx_n_s_shape); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_17 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_11);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_r = __pyx_t_17;
      __pyx_t_17 = 0;
      goto __pyx_L0;

      /* "HumidAirProp.pyx":100
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 */
    }

    /* "HumidAirProp.pyx":102
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input3.shape)
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L46_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_np); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_Input3, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 102, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L46_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":103
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 *             return np.array(vals).reshape(Input3.shape)             # <<<<<<<<<<<<<<
 *         else:
 *             return vals
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 103, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_array); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 103, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_17 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_v_vals) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_vals);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 103, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_reshape); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 103, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_Input3, __pyx_n_s_shape); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 103, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_17);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 103, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L0;

      /* "HumidAirProp.pyx":102
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input3.shape)
 *         else:
 */
    }

    /* "HumidAirProp.pyx":105
 *             return np.array(vals).reshape(Input3.shape)
 *         else:
 *             return vals             # <<<<<<<<<<<<<<
 * 
 *     else:
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_vals);
      __pyx_r = __pyx_v_vals;
      goto __pyx_L0;
    }

    /* "HumidAirProp.pyx":54
 * 
 *     # At least one is iterable, convert non-iterable to a list of the same length
 *     elif iterable(Input1) or iterable(Input2) or iterable(Input3):             # <<<<<<<<<<<<<<
 * 
 *         iterable_lengths = []
 */
  }

  /* "HumidAirProp.pyx":108
 * 
 *     else:
 *         raise TypeError('Numerical inputs to HAPropsSI must be ints, floats, lists, or 1D numpy arrays.')             # <<<<<<<<<<<<<<
 * 
 * cpdef HAProps(string OutputName, string Input1Name, Input1, string Input2Name, Input2, string Input3Name, Input3):
 */
  /*else*/ {
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 108, __pyx_L1_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(1, 108, __pyx_L1_error)
  }

  /* "HumidAirProp.pyx":3
 * #This file gets directly included in CoolProp.pyx, separate here for cleanness of code
 * 
 * cpdef HAPropsSI(string OutputName, string Input1Name, Input1, string Input2Name, Input2, string Input3Name, Input3):             # <<<<<<<<<<<<<<
 *     """
 *     Copyright Ian Bell, 2011 email: ian.h.bell@gmail.com
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("CoolProp.CoolProp.HAPropsSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_iterable_lengths);
  __Pyx_XDECREF(__pyx_v_L);
  __Pyx_XDECREF(__pyx_v_Input1vec);
  __Pyx_XDECREF(__pyx_v_Input2vec);
  __Pyx_XDECREF(__pyx_v_Input3vec);
  __Pyx_XDECREF(__pyx_v_vals);
  __Pyx_XDECREF(__pyx_v__Input1);
  __Pyx_XDECREF(__pyx_v__Input2);
  __Pyx_XDECREF(__pyx_v__Input3);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_1HAPropsSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_HAPropsSI[] = "\n    Copyright Ian Bell, 2011 email: ian.h.bell@gmail.com\n\n    The function is called like\n\n    HAPropsSI('H','T',298.15,'P',101325,'R',0.5)\n\n    which will return the enthalpy of the air for a set of inputs of dry bulb temperature of 25C, atmospheric pressure, and a relative humidity of 50%.\n\n    This function implements humid air properties based on the analysis in ASHRAE RP-1845 which is available online: http://rp.ashrae.biz/page/ASHRAE-D-RP-1485-20091216.pdf\n\n    It employs real gas properties for both air and water, as well as the most accurate interaction parameters and enhancement factors.  The IAPWS-95 formulation for the properties of water is used throughout in preference to the industrial formulation.  It is unclear why the industrial formulation is used in the first place.\n\n    Since humid air is nominally a binary mixture, three variables are needed to fix the state.  At least one of the input parameters must be dry-bulb temperature, relative humidity, dew-point temperature, or humidity ratio.  The others will be calculated.  If the output variable is a transport property (conductivity or viscosity), the state must be able to be found directly - i.e. make sure you give temperature and relative humidity or humidity ratio.  The list of possible input variables are\n\n    ========  ========    ========================================\n    String    Aliases     Description\n    ========  ========    ========================================\n    T         Tdb         Dry-Bulb Temperature [K]\n    B         Twb         Wet-Bulb Temperature [K]\n    D         Tdp         Dew-Point Temperature [K]\n    P                     Pressure [Pa]\n    V         Vda         Mixture volume [m3/kg dry air]\n    R         RH          Relative humidity in (0,1) [-]\n    W         Omega       Humidity Ratio [kg water/kg dry air]\n    H         Hda         Mixture enthalpy [J/kg dry air]\n    S         Sda         Mixture entropy [J/kg dry air/K]\n    C         c""p          Mixture specific heat [J/kg dry air/K]\n    M         Visc        Mixture viscosity [Pa-s]\n    K                     Mixture thermal conductivity [W/m/K]\n    ========  ========    ========================================\n\n    There are also strings for the mixture volume and mixture enthalpy that will return the properties on a total humid air flow rate basis, they are given by 'Vha' [units of m^3/kg humid air] and 'Cha' [units of kJ/kg humid air/K] and 'Hha' [units of kJ/kg humid air] respectively.\n\n    For more information, go to http://www.coolprop.org\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_1HAPropsSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_OutputName;
  std::string __pyx_v_Input1Name;
  PyObject *__pyx_v_Input1 = 0;
  std::string __pyx_v_Input2Name;
  PyObject *__pyx_v_Input2 = 0;
  std::string __pyx_v_Input3Name;
  PyObject *__pyx_v_Input3 = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HAPropsSI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_OutputName,&__pyx_n_s_Input1Name,&__pyx_n_s_Input1,&__pyx_n_s_Input2Name,&__pyx_n_s_Input2,&__pyx_n_s_Input3Name,&__pyx_n_s_Input3,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_OutputName)) != 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_Input1Name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAPropsSI", 1, 7, 7, 1); __PYX_ERR(1, 3, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAPropsSI", 1, 7, 7, 2); __PYX_ERR(1, 3, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input2Name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAPropsSI", 1, 7, 7, 3); __PYX_ERR(1, 3, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAPropsSI", 1, 7, 7, 4); __PYX_ERR(1, 3, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input3Name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAPropsSI", 1, 7, 7, 5); __PYX_ERR(1, 3, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAPropsSI", 1, 7, 7, 6); __PYX_ERR(1, 3, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "HAPropsSI") < 0)) __PYX_ERR(1, 3, __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_OutputName = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
    __pyx_v_Input1Name = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
    __pyx_v_Input1 = values[2];
    __pyx_v_Input2Name = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
    __pyx_v_Input2 = values[4];
    __pyx_v_Input3Name = __pyx_convert_string_from_py_std__in_string(values[5]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
    __pyx_v_Input3 = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("HAPropsSI", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.HAPropsSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_HAPropsSI(__pyx_self, __pyx_v_OutputName, __pyx_v_Input1Name, __pyx_v_Input1, __pyx_v_Input2Name, __pyx_v_Input2, __pyx_v_Input3Name, __pyx_v_Input3);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_HAPropsSI(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_OutputName, std::string __pyx_v_Input1Name, PyObject *__pyx_v_Input1, std::string __pyx_v_Input2Name, PyObject *__pyx_v_Input2, std::string __pyx_v_Input3Name, PyObject *__pyx_v_Input3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("HAPropsSI", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_HAPropsSI(__pyx_v_OutputName, __pyx_v_Input1Name, __pyx_v_Input1, __pyx_v_Input2Name, __pyx_v_Input2, __pyx_v_Input3Name, __pyx_v_Input3, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __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("CoolProp.CoolProp.HAPropsSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "HumidAirProp.pyx":110
 *         raise TypeError('Numerical inputs to HAPropsSI must be ints, floats, lists, or 1D numpy arrays.')
 * 
 * cpdef HAProps(string OutputName, string Input1Name, Input1, string Input2Name, Input2, string Input3Name, Input3):             # <<<<<<<<<<<<<<
 *     """
 *     DEPRECATED!!! Used the HAPropsSI function
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_3HAProps(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_HAProps(std::string __pyx_v_OutputName, std::string __pyx_v_Input1Name, PyObject *__pyx_v_Input1, std::string __pyx_v_Input2Name, PyObject *__pyx_v_Input2, std::string __pyx_v_Input3Name, PyObject *__pyx_v_Input3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_v_val;
  std::string __pyx_v_err_string;
  PyObject *__pyx_v_iterable_lengths = NULL;
  PyObject *__pyx_v_L = NULL;
  PyObject *__pyx_v_Input1vec = NULL;
  PyObject *__pyx_v_Input2vec = NULL;
  PyObject *__pyx_v_Input3vec = NULL;
  PyObject *__pyx_v_vals = NULL;
  PyObject *__pyx_v__Input1 = NULL;
  PyObject *__pyx_v__Input2 = NULL;
  PyObject *__pyx_v__Input3 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  double __pyx_t_5;
  double __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  std::string __pyx_t_12;
  std::string __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  int __pyx_t_15;
  PyObject *(*__pyx_t_16)(PyObject *);
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *(*__pyx_t_19)(PyObject *);
  Py_ssize_t __pyx_t_20;
  __Pyx_RefNannySetupContext("HAProps", 0);

  /* "HumidAirProp.pyx":115
 *     """
 * 
 *     if isinstance(Input1, (int, long, float, complex)) and isinstance(Input2, (int, long, float, complex)) and isinstance(Input3, (int, long, float, complex)):             # <<<<<<<<<<<<<<
 *         val = _HAProps(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 */
  __pyx_t_3 = PyInt_Check(__pyx_v_Input1); 
  __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_Input1); 
  __pyx_t_3 = (__pyx_t_4 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_3 = PyFloat_Check(__pyx_v_Input1); 
  __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 = PyComplex_Check(__pyx_v_Input1); 
  __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_Input2); 
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_4 = PyLong_Check(__pyx_v_Input2); 
  __pyx_t_2 = (__pyx_t_4 != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_3 = __pyx_t_2;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_2 = PyFloat_Check(__pyx_v_Input2); 
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_4 = PyComplex_Check(__pyx_v_Input2); 
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L11_bool_binop_done:;
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyInt_Check(__pyx_v_Input3); 
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_4 = PyLong_Check(__pyx_v_Input3); 
  __pyx_t_3 = (__pyx_t_4 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_3 = PyFloat_Check(__pyx_v_Input3); 
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (!__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_4 = PyComplex_Check(__pyx_v_Input3); 
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L15_bool_binop_done:;
  __pyx_t_3 = (__pyx_t_2 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "HumidAirProp.pyx":116
 * 
 *     if isinstance(Input1, (int, long, float, complex)) and isinstance(Input2, (int, long, float, complex)) and isinstance(Input3, (int, long, float, complex)):
 *         val = _HAProps(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)             # <<<<<<<<<<<<<<
 * 
 *         if math.isinf(val) or math.isnan(val):
 */
    __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_Input1); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 116, __pyx_L1_error)
    __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v_Input2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 116, __pyx_L1_error)
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_Input3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 116, __pyx_L1_error)
    __pyx_v_val = HumidAir::HAProps(__pyx_v_OutputName, __pyx_v_Input1Name, __pyx_t_5, __pyx_v_Input2Name, __pyx_t_6, __pyx_v_Input3Name, __pyx_t_7);

    /* "HumidAirProp.pyx":118
 *         val = _HAProps(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 *         if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_math); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_isinf); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (!__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L20_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_math); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_isnan); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 118, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_1 = __pyx_t_3;
    __pyx_L20_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":119
 * 
 *         if math.isinf(val) or math.isnan(val):
 *             err_string = _get_global_param_string('errstring')             # <<<<<<<<<<<<<<
 *             if not len(err_string) == 0:
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 */
      __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 119, __pyx_L1_error)
      try {
        __pyx_t_13 = CoolProp::get_global_param_string(__pyx_t_12);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(1, 119, __pyx_L1_error)
      }
      __pyx_v_err_string = __pyx_t_13;

      /* "HumidAirProp.pyx":120
 *         if math.isinf(val) or math.isnan(val):
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 *             else:
 */
      __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_14 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 120, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_1 = ((!((__pyx_t_14 == 0) != 0)) != 0);
      if (unlikely(__pyx_t_1)) {

        /* "HumidAirProp.pyx":121
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))             # <<<<<<<<<<<<<<
 *             else:
 *                 raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_err_s_inputs_were_out_s_in1n_s, __pyx_n_s_format); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_err, __pyx_t_10) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_out, __pyx_t_10) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in1n, __pyx_t_10) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in1, __pyx_v_Input1) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in2n, __pyx_t_10) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in2, __pyx_v_Input2) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in3n, __pyx_t_10) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_in3, __pyx_v_Input3) < 0) __PYX_ERR(1, 121, __pyx_L1_error)
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_Raise(__pyx_t_9, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __PYX_ERR(1, 121, __pyx_L1_error)

        /* "HumidAirProp.pyx":120
 *         if math.isinf(val) or math.isnan(val):
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 *             else:
 */
      }

      /* "HumidAirProp.pyx":123
 *                 raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(err=err_string,out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 *             else:
 *                 raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))             # <<<<<<<<<<<<<<
 * 
 *         return val #Error raised by HAProps on failure
 */
      /*else*/ {
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_HAProps_failed_ungracefully_with, __pyx_n_s_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_out, __pyx_t_8) < 0) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in1n, __pyx_t_8) < 0) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in1, __pyx_v_Input1) < 0) __PYX_ERR(1, 123, __pyx_L1_error)
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in2n, __pyx_t_8) < 0) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in2, __pyx_v_Input2) < 0) __PYX_ERR(1, 123, __pyx_L1_error)
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in3n, __pyx_t_8) < 0) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_in3, __pyx_v_Input3) < 0) __PYX_ERR(1, 123, __pyx_L1_error)
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_Raise(__pyx_t_10, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __PYX_ERR(1, 123, __pyx_L1_error)
      }

      /* "HumidAirProp.pyx":118
 *         val = _HAProps(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 *         if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *             err_string = _get_global_param_string('errstring')
 *             if not len(err_string) == 0:
 */
    }

    /* "HumidAirProp.pyx":125
 *                 raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=Input1,in2n=Input2Name,in2=Input2,in3n=Input3Name,in3=Input3))
 * 
 *         return val #Error raised by HAProps on failure             # <<<<<<<<<<<<<<
 * 
 *     # At least one is iterable, convert non-iterable to a list of the same length
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_10 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_r = __pyx_t_10;
    __pyx_t_10 = 0;
    goto __pyx_L0;

    /* "HumidAirProp.pyx":115
 *     """
 * 
 *     if isinstance(Input1, (int, long, float, complex)) and isinstance(Input2, (int, long, float, complex)) and isinstance(Input3, (int, long, float, complex)):             # <<<<<<<<<<<<<<
 *         val = _HAProps(OutputName, Input1Name, Input1, Input2Name, Input2, Input3Name, Input3)
 * 
 */
  }

  /* "HumidAirProp.pyx":128
 * 
 *     # At least one is iterable, convert non-iterable to a list of the same length
 *     elif iterable(Input1) or iterable(Input2) or iterable(Input3):             # <<<<<<<<<<<<<<
 * 
 *         iterable_lengths = []
 */
  __pyx_t_3 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input1) != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L23_bool_binop_done;
  }
  __pyx_t_3 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input2) != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L23_bool_binop_done;
  }
  __pyx_t_3 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input3) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L23_bool_binop_done:;
  if (likely(__pyx_t_1)) {

    /* "HumidAirProp.pyx":130
 *     elif iterable(Input1) or iterable(Input2) or iterable(Input3):
 * 
 *         iterable_lengths = []             # <<<<<<<<<<<<<<
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))
 */
    __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_v_iterable_lengths = ((PyObject*)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "HumidAirProp.pyx":131
 * 
 *         iterable_lengths = []
 *         if iterable(Input1):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):
 */
    __pyx_t_1 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input1) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":132
 *         iterable_lengths = []
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))             # <<<<<<<<<<<<<<
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))
 */
      __pyx_t_14 = PyObject_Length(__pyx_v_Input1); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 132, __pyx_L1_error)
      __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_iterable_lengths, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 132, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":131
 * 
 *         iterable_lengths = []
 *         if iterable(Input1):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):
 */
    }

    /* "HumidAirProp.pyx":133
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):
 */
    __pyx_t_1 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input2) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":134
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))             # <<<<<<<<<<<<<<
 *         if iterable(Input3):
 *             iterable_lengths.append(len(Input3))
 */
      __pyx_t_14 = PyObject_Length(__pyx_v_Input2); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 134, __pyx_L1_error)
      __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_iterable_lengths, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 134, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":133
 *         if iterable(Input1):
 *             iterable_lengths.append(len(Input1))
 *         if iterable(Input2):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):
 */
    }

    /* "HumidAirProp.pyx":135
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input3))
 * 
 */
    __pyx_t_1 = (__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input3) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":136
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):
 *             iterable_lengths.append(len(Input3))             # <<<<<<<<<<<<<<
 * 
 *         if not len(set(iterable_lengths)) == 1:
 */
      __pyx_t_14 = PyObject_Length(__pyx_v_Input3); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 136, __pyx_L1_error)
      __pyx_t_10 = PyInt_FromSsize_t(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_iterable_lengths, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 136, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":135
 *         if iterable(Input2):
 *             iterable_lengths.append(len(Input2))
 *         if iterable(Input3):             # <<<<<<<<<<<<<<
 *             iterable_lengths.append(len(Input3))
 * 
 */
    }

    /* "HumidAirProp.pyx":138
 *             iterable_lengths.append(len(Input3))
 * 
 *         if not len(set(iterable_lengths)) == 1:             # <<<<<<<<<<<<<<
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))
 *         else:
 */
    __pyx_t_10 = PySet_New(__pyx_v_iterable_lengths); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 138, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_14 = PySet_GET_SIZE(__pyx_t_10); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(1, 138, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_1 = ((!((__pyx_t_14 == 1) != 0)) != 0);
    if (unlikely(__pyx_t_1)) {

      /* "HumidAirProp.pyx":139
 * 
 *         if not len(set(iterable_lengths)) == 1:
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))             # <<<<<<<<<<<<<<
 *         else:
 *             L = iterable_lengths[0]
 */
      __pyx_t_10 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_iterable_lengths); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = PyNumber_Add(__pyx_kp_s_Iterable_inputs_are_not_all_the, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_Raise(__pyx_t_10, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __PYX_ERR(1, 139, __pyx_L1_error)

      /* "HumidAirProp.pyx":138
 *             iterable_lengths.append(len(Input3))
 * 
 *         if not len(set(iterable_lengths)) == 1:             # <<<<<<<<<<<<<<
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))
 *         else:
 */
    }

    /* "HumidAirProp.pyx":141
 *             raise TypeError("Iterable inputs are not all the same length.  Lengths: "+str(iterable_lengths))
 *         else:
 *             L = iterable_lengths[0]             # <<<<<<<<<<<<<<
 * 
 *         if not iterable(Input1):
 */
    /*else*/ {
      __pyx_t_10 = __Pyx_GetItemInt_List(__pyx_v_iterable_lengths, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_v_L = __pyx_t_10;
      __pyx_t_10 = 0;
    }

    /* "HumidAirProp.pyx":143
 *             L = iterable_lengths[0]
 * 
 *         if not iterable(Input1):             # <<<<<<<<<<<<<<
 *             Input1vec = [Input1]*L
 *         else:
 */
    __pyx_t_1 = ((!(__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input1) != 0)) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":144
 * 
 *         if not iterable(Input1):
 *             Input1vec = [Input1]*L             # <<<<<<<<<<<<<<
 *         else:
 *             Input1vec = Input1
 */
      __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 144, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_Input1);
      __Pyx_GIVEREF(__pyx_v_Input1);
      PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input1);
      { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_10, __pyx_v_L); if (unlikely(!__pyx_temp)) __PYX_ERR(1, 144, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_temp);
        __Pyx_DECREF(__pyx_t_10);
        __pyx_t_10 = __pyx_temp;
      }
      __pyx_v_Input1vec = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":143
 *             L = iterable_lengths[0]
 * 
 *         if not iterable(Input1):             # <<<<<<<<<<<<<<
 *             Input1vec = [Input1]*L
 *         else:
 */
      goto __pyx_L30;
    }

    /* "HumidAirProp.pyx":146
 *             Input1vec = [Input1]*L
 *         else:
 *             Input1vec = Input1             # <<<<<<<<<<<<<<
 * 
 *         if not iterable(Input2):
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_v_Input1);
      __pyx_v_Input1vec = __pyx_v_Input1;
    }
    __pyx_L30:;

    /* "HumidAirProp.pyx":148
 *             Input1vec = Input1
 * 
 *         if not iterable(Input2):             # <<<<<<<<<<<<<<
 *             Input2vec = [Input2]*L
 *         else:
 */
    __pyx_t_1 = ((!(__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input2) != 0)) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":149
 * 
 *         if not iterable(Input2):
 *             Input2vec = [Input2]*L             # <<<<<<<<<<<<<<
 *         else:
 *             Input2vec = Input2
 */
      __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_Input2);
      __Pyx_GIVEREF(__pyx_v_Input2);
      PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input2);
      { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_10, __pyx_v_L); if (unlikely(!__pyx_temp)) __PYX_ERR(1, 149, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_temp);
        __Pyx_DECREF(__pyx_t_10);
        __pyx_t_10 = __pyx_temp;
      }
      __pyx_v_Input2vec = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":148
 *             Input1vec = Input1
 * 
 *         if not iterable(Input2):             # <<<<<<<<<<<<<<
 *             Input2vec = [Input2]*L
 *         else:
 */
      goto __pyx_L31;
    }

    /* "HumidAirProp.pyx":151
 *             Input2vec = [Input2]*L
 *         else:
 *             Input2vec = Input2             # <<<<<<<<<<<<<<
 * 
 *         if not iterable(Input3):
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_v_Input2);
      __pyx_v_Input2vec = __pyx_v_Input2;
    }
    __pyx_L31:;

    /* "HumidAirProp.pyx":153
 *             Input2vec = Input2
 * 
 *         if not iterable(Input3):             # <<<<<<<<<<<<<<
 *             Input3vec = [Input3]*L
 *         else:
 */
    __pyx_t_1 = ((!(__pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_Input3) != 0)) != 0);
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":154
 * 
 *         if not iterable(Input3):
 *             Input3vec = [Input3]*L             # <<<<<<<<<<<<<<
 *         else:
 *             Input3vec = Input3
 */
      __pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 154, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_Input3);
      __Pyx_GIVEREF(__pyx_v_Input3);
      PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input3);
      { PyObject* __pyx_temp = PyNumber_InPlaceMultiply(__pyx_t_10, __pyx_v_L); if (unlikely(!__pyx_temp)) __PYX_ERR(1, 154, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_temp);
        __Pyx_DECREF(__pyx_t_10);
        __pyx_t_10 = __pyx_temp;
      }
      __pyx_v_Input3vec = __pyx_t_10;
      __pyx_t_10 = 0;

      /* "HumidAirProp.pyx":153
 *             Input2vec = Input2
 * 
 *         if not iterable(Input3):             # <<<<<<<<<<<<<<
 *             Input3vec = [Input3]*L
 *         else:
 */
      goto __pyx_L32;
    }

    /* "HumidAirProp.pyx":156
 *             Input3vec = [Input3]*L
 *         else:
 *             Input3vec = Input3             # <<<<<<<<<<<<<<
 * 
 *         vals = []
 */
    /*else*/ {
      __Pyx_INCREF(__pyx_v_Input3);
      __pyx_v_Input3vec = __pyx_v_Input3;
    }
    __pyx_L32:;

    /* "HumidAirProp.pyx":158
 *             Input3vec = Input3
 * 
 *         vals = []             # <<<<<<<<<<<<<<
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):
 */
    __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_v_vals = ((PyObject*)__pyx_t_10);
    __pyx_t_10 = 0;

    /* "HumidAirProp.pyx":160
 *         vals = []
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):             # <<<<<<<<<<<<<<
 *             val = _HAProps(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 */
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_Input1vec);
    __Pyx_GIVEREF(__pyx_v_Input1vec);
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_Input1vec);
    __Pyx_INCREF(__pyx_v_Input2vec);
    __Pyx_GIVEREF(__pyx_v_Input2vec);
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_Input2vec);
    __Pyx_INCREF(__pyx_v_Input3vec);
    __Pyx_GIVEREF(__pyx_v_Input3vec);
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_Input3vec);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
      __pyx_t_10 = __pyx_t_8; __Pyx_INCREF(__pyx_t_10); __pyx_t_14 = 0;
      __pyx_t_16 = NULL;
    } else {
      __pyx_t_14 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_16 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 160, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    for (;;) {
      if (likely(!__pyx_t_16)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_8); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(1, 160, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 160, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        } else {
          if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_8); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(1, 160, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 160, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        }
      } else {
        __pyx_t_8 = __pyx_t_16(__pyx_t_10);
        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(1, 160, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
        PyObject* sequence = __pyx_t_8;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 3)) {
          if (size > 3) __Pyx_RaiseTooManyValuesError(3);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(1, 160, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); 
          __pyx_t_17 = PyTuple_GET_ITEM(sequence, 2); 
        } else {
          __pyx_t_9 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_11 = PyList_GET_ITEM(sequence, 1); 
          __pyx_t_17 = PyList_GET_ITEM(sequence, 2); 
        }
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_17);
        #else
        __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 160, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 160, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_17 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 160, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        #endif
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_18 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 160, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_19 = Py_TYPE(__pyx_t_18)->tp_iternext;
        index = 0; __pyx_t_9 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_9)) goto __pyx_L35_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_9);
        index = 1; __pyx_t_11 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_11)) goto __pyx_L35_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_11);
        index = 2; __pyx_t_17 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_17)) goto __pyx_L35_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_17);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_18), 3) < 0) __PYX_ERR(1, 160, __pyx_L1_error)
        __pyx_t_19 = NULL;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        goto __pyx_L36_unpacking_done;
        __pyx_L35_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_19 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(1, 160, __pyx_L1_error)
        __pyx_L36_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v__Input1, __pyx_t_9);
      __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v__Input2, __pyx_t_11);
      __pyx_t_11 = 0;
      __Pyx_XDECREF_SET(__pyx_v__Input3, __pyx_t_17);
      __pyx_t_17 = 0;

      /* "HumidAirProp.pyx":161
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):
 *             val = _HAProps(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)             # <<<<<<<<<<<<<<
 * 
 *             if math.isinf(val) or math.isnan(val):
 */
      __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v__Input1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 161, __pyx_L1_error)
      __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_v__Input2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 161, __pyx_L1_error)
      __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v__Input3); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 161, __pyx_L1_error)
      __pyx_v_val = HumidAir::HAProps(__pyx_v_OutputName, __pyx_v_Input1Name, __pyx_t_7, __pyx_v_Input2Name, __pyx_t_6, __pyx_v_Input3Name, __pyx_t_5);

      /* "HumidAirProp.pyx":163
 *             val = _HAProps(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 *             if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:
 */
      __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_math); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_isinf); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_11, function);
        }
      }
      __pyx_t_8 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_9, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_17);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (!__pyx_t_3) {
      } else {
        __pyx_t_1 = __pyx_t_3;
        goto __pyx_L38_bool_binop_done;
      }
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_math); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_isnan); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_9 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_17);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_17, function);
        }
      }
      __pyx_t_8 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_9, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_11);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 163, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_1 = __pyx_t_3;
      __pyx_L38_bool_binop_done:;
      if (__pyx_t_1) {

        /* "HumidAirProp.pyx":164
 * 
 *             if math.isinf(val) or math.isnan(val):
 *                 err_string = _get_global_param_string('errstring')             # <<<<<<<<<<<<<<
 *                 if not len(err_string) == 0:
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 */
        __pyx_t_13 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 164, __pyx_L1_error)
        try {
          __pyx_t_12 = CoolProp::get_global_param_string(__pyx_t_13);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(1, 164, __pyx_L1_error)
        }
        __pyx_v_err_string = __pyx_t_12;

        /* "HumidAirProp.pyx":165
 *             if math.isinf(val) or math.isnan(val):
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 *                 else:
 */
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 165, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_20 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_20 == ((Py_ssize_t)-1))) __PYX_ERR(1, 165, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_1 = ((!((__pyx_t_20 == 0) != 0)) != 0);
        if (unlikely(__pyx_t_1)) {

          /* "HumidAirProp.pyx":166
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))             # <<<<<<<<<<<<<<
 *                 else:
 *                     raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 */
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_err_s_inputs_were_out_s_in1n_s_2, __pyx_n_s_format); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_17 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_err_string); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_err, __pyx_t_11) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_out, __pyx_t_11) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in1n, __pyx_t_11) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in1, __pyx_v__Input1) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in2n, __pyx_t_11) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in2, __pyx_v__Input2) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __pyx_t_11 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in3n, __pyx_t_11) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PyDict_SetItem(__pyx_t_17, __pyx_n_s_in3, __pyx_v__Input3) < 0) __PYX_ERR(1, 166, __pyx_L1_error)
          __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, __pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_Raise(__pyx_t_17, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __PYX_ERR(1, 166, __pyx_L1_error)

          /* "HumidAirProp.pyx":165
 *             if math.isinf(val) or math.isnan(val):
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:             # <<<<<<<<<<<<<<
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 *                 else:
 */
        }

        /* "HumidAirProp.pyx":168
 *                     raise ValueError("{err:s} :: inputs were:\"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e}".format(err=err_string,out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 *                 else:
 *                     raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))             # <<<<<<<<<<<<<<
 * 
 *             vals.append(val)
 */
        /*else*/ {
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_HAProps_failed_ungracefully_with, __pyx_n_s_format); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_11 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_OutputName); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_out, __pyx_t_8) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input1Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in1n, __pyx_t_8) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in1, __pyx_v__Input1) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input2Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in2n, __pyx_t_8) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in2, __pyx_v__Input2) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
          __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Input3Name); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in3n, __pyx_t_8) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_in3, __pyx_v__Input3) < 0) __PYX_ERR(1, 168, __pyx_L1_error)
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_empty_tuple, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 168, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_Raise(__pyx_t_11, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __PYX_ERR(1, 168, __pyx_L1_error)
        }

        /* "HumidAirProp.pyx":163
 *             val = _HAProps(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 *             if math.isinf(val) or math.isnan(val):             # <<<<<<<<<<<<<<
 *                 err_string = _get_global_param_string('errstring')
 *                 if not len(err_string) == 0:
 */
      }

      /* "HumidAirProp.pyx":170
 *                     raise ValueError("HAProps failed ungracefully with inputs: \"{out:s}\",\"{in1n:s}\",{in1:0.16e},\"{in2n:s}\",{in2:0.16e},\"{in3n:s}\",{in3:0.16e} ".format(out=OutputName,in1n=Input1Name,in1=_Input1,in2n=Input2Name,in2=_Input2,in3n=Input3Name,in3=_Input3))
 * 
 *             vals.append(val)             # <<<<<<<<<<<<<<
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 */
      __pyx_t_11 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 170, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_vals, __pyx_t_11); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(1, 170, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "HumidAirProp.pyx":160
 *         vals = []
 * 
 *         for _Input1, _Input2, _Input3 in zip(Input1vec, Input2vec, Input3vec):             # <<<<<<<<<<<<<<
 *             val = _HAProps(OutputName, Input1Name, _Input1, Input2Name, _Input2, Input3Name, _Input3)
 * 
 */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

    /* "HumidAirProp.pyx":172
 *             vals.append(val)
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 172, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L42_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_Input1, __pyx_t_11); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 172, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L42_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":173
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 *             return np.array(vals).reshape(Input1.shape)             # <<<<<<<<<<<<<<
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_17);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_17, function);
        }
      }
      __pyx_t_10 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_8, __pyx_v_vals) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_vals);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_reshape); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_Input1, __pyx_n_s_shape); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_17);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_17, function);
        }
      }
      __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_8, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_10);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_r = __pyx_t_11;
      __pyx_t_11 = 0;
      goto __pyx_L0;

      /* "HumidAirProp.pyx":172
 *             vals.append(val)
 * 
 *         if _numpy_supported and isinstance(Input1, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 */
    }

    /* "HumidAirProp.pyx":174
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L44_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_2 = PyObject_IsInstance(__pyx_v_Input2, __pyx_t_17); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 174, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_3 = (__pyx_t_2 != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L44_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":175
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)             # <<<<<<<<<<<<<<
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 *             return np.array(vals).reshape(Input3.shape)
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_array); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_11 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_v_vals) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_vals);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_reshape); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_Input2, __pyx_n_s_shape); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_10 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_17 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_11);
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 175, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_r = __pyx_t_17;
      __pyx_t_17 = 0;
      goto __pyx_L0;

      /* "HumidAirProp.pyx":174
 *         if _numpy_supported and isinstance(Input1, np.ndarray):
 *             return np.array(vals).reshape(Input1.shape)
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 */
    }

    /* "HumidAirProp.pyx":176
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input3.shape)
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 176, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L46_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_np); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_3 = PyObject_IsInstance(__pyx_v_Input3, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 176, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_2 = (__pyx_t_3 != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L46_bool_binop_done:;
    if (__pyx_t_1) {

      /* "HumidAirProp.pyx":177
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):
 *             return np.array(vals).reshape(Input3.shape)             # <<<<<<<<<<<<<<
 *         else:
 *             return vals
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_array); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_17 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_v_vals) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_vals);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_reshape); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_Input3, __pyx_n_s_shape); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_8 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_17);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 177, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L0;

      /* "HumidAirProp.pyx":176
 *         elif _numpy_supported and isinstance(Input2, np.ndarray):
 *             return np.array(vals).reshape(Input2.shape)
 *         elif _numpy_supported and isinstance(Input3, np.ndarray):             # <<<<<<<<<<<<<<
 *             return np.array(vals).reshape(Input3.shape)
 *         else:
 */
    }

    /* "HumidAirProp.pyx":179
 *             return np.array(vals).reshape(Input3.shape)
 *         else:
 *             return vals             # <<<<<<<<<<<<<<
 * 
 *     else:
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_vals);
      __pyx_r = __pyx_v_vals;
      goto __pyx_L0;
    }

    /* "HumidAirProp.pyx":128
 * 
 *     # At least one is iterable, convert non-iterable to a list of the same length
 *     elif iterable(Input1) or iterable(Input2) or iterable(Input3):             # <<<<<<<<<<<<<<
 * 
 *         iterable_lengths = []
 */
  }

  /* "HumidAirProp.pyx":182
 * 
 *     else:
 *         raise TypeError('Numerical inputs to HAProps must be ints, floats, lists, or 1D numpy arrays.')             # <<<<<<<<<<<<<<
 * 
 * cpdef tuple HAProps_Aux(str OutputName, double T, double p, double w):
 */
  /*else*/ {
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 182, __pyx_L1_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(1, 182, __pyx_L1_error)
  }

  /* "HumidAirProp.pyx":110
 *         raise TypeError('Numerical inputs to HAPropsSI must be ints, floats, lists, or 1D numpy arrays.')
 * 
 * cpdef HAProps(string OutputName, string Input1Name, Input1, string Input2Name, Input2, string Input3Name, Input3):             # <<<<<<<<<<<<<<
 *     """
 *     DEPRECATED!!! Used the HAPropsSI function
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("CoolProp.CoolProp.HAProps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_iterable_lengths);
  __Pyx_XDECREF(__pyx_v_L);
  __Pyx_XDECREF(__pyx_v_Input1vec);
  __Pyx_XDECREF(__pyx_v_Input2vec);
  __Pyx_XDECREF(__pyx_v_Input3vec);
  __Pyx_XDECREF(__pyx_v_vals);
  __Pyx_XDECREF(__pyx_v__Input1);
  __Pyx_XDECREF(__pyx_v__Input2);
  __Pyx_XDECREF(__pyx_v__Input3);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_3HAProps(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_2HAProps[] = "\n    DEPRECATED!!! Used the HAPropsSI function\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_3HAProps(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_OutputName;
  std::string __pyx_v_Input1Name;
  PyObject *__pyx_v_Input1 = 0;
  std::string __pyx_v_Input2Name;
  PyObject *__pyx_v_Input2 = 0;
  std::string __pyx_v_Input3Name;
  PyObject *__pyx_v_Input3 = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HAProps (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_OutputName,&__pyx_n_s_Input1Name,&__pyx_n_s_Input1,&__pyx_n_s_Input2Name,&__pyx_n_s_Input2,&__pyx_n_s_Input3Name,&__pyx_n_s_Input3,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_OutputName)) != 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_Input1Name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps", 1, 7, 7, 1); __PYX_ERR(1, 110, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps", 1, 7, 7, 2); __PYX_ERR(1, 110, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input2Name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps", 1, 7, 7, 3); __PYX_ERR(1, 110, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps", 1, 7, 7, 4); __PYX_ERR(1, 110, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input3Name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps", 1, 7, 7, 5); __PYX_ERR(1, 110, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Input3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps", 1, 7, 7, 6); __PYX_ERR(1, 110, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "HAProps") < 0)) __PYX_ERR(1, 110, __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_OutputName = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 110, __pyx_L3_error)
    __pyx_v_Input1Name = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 110, __pyx_L3_error)
    __pyx_v_Input1 = values[2];
    __pyx_v_Input2Name = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 110, __pyx_L3_error)
    __pyx_v_Input2 = values[4];
    __pyx_v_Input3Name = __pyx_convert_string_from_py_std__in_string(values[5]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 110, __pyx_L3_error)
    __pyx_v_Input3 = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("HAProps", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 110, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.HAProps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_2HAProps(__pyx_self, __pyx_v_OutputName, __pyx_v_Input1Name, __pyx_v_Input1, __pyx_v_Input2Name, __pyx_v_Input2, __pyx_v_Input3Name, __pyx_v_Input3);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_2HAProps(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_OutputName, std::string __pyx_v_Input1Name, PyObject *__pyx_v_Input1, std::string __pyx_v_Input2Name, PyObject *__pyx_v_Input2, std::string __pyx_v_Input3Name, PyObject *__pyx_v_Input3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("HAProps", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_HAProps(__pyx_v_OutputName, __pyx_v_Input1Name, __pyx_v_Input1, __pyx_v_Input2Name, __pyx_v_Input2, __pyx_v_Input3Name, __pyx_v_Input3, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 110, __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("CoolProp.CoolProp.HAProps", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "HumidAirProp.pyx":184
 *         raise TypeError('Numerical inputs to HAProps must be ints, floats, lists, or 1D numpy arrays.')
 * 
 * cpdef tuple HAProps_Aux(str OutputName, double T, double p, double w):             # <<<<<<<<<<<<<<
 *     """
 *     Allows low-level access to some of the routines employed in HumidAirProps
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5HAProps_Aux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_HAProps_Aux(PyObject *__pyx_v_OutputName, double __pyx_v_T, double __pyx_v_p, double __pyx_v_w, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_v_units = 0;
  PyObject *__pyx_v__OutputName = 0;
  double __pyx_v_output;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  char const *__pyx_t_4;
  char *__pyx_t_5;
  Py_ssize_t __pyx_t_6;
  __Pyx_RefNannySetupContext("HAProps_Aux", 0);

  /* "HumidAirProp.pyx":206
 *     """
 *     #Convert all strings to byte-strings
 *     cdef bytes units = (' '*100).encode('ascii')             # <<<<<<<<<<<<<<
 *     cdef bytes _OutputName = OutputName.encode('ascii')
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s__3, __pyx_n_s_encode); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 206, __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_n_s_ascii) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_ascii);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 206, __pyx_L1_error)
  __pyx_v_units = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "HumidAirProp.pyx":207
 *     #Convert all strings to byte-strings
 *     cdef bytes units = (' '*100).encode('ascii')
 *     cdef bytes _OutputName = OutputName.encode('ascii')             # <<<<<<<<<<<<<<
 * 
 *     output = _HAProps_Aux(_OutputName,T,p,w,units)
 */
  __pyx_t_1 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyString_Type_encode, __pyx_v_OutputName, __pyx_n_s_ascii); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 207, __pyx_L1_error)
  __pyx_v__OutputName = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "HumidAirProp.pyx":209
 *     cdef bytes _OutputName = OutputName.encode('ascii')
 * 
 *     output = _HAProps_Aux(_OutputName,T,p,w,units)             # <<<<<<<<<<<<<<
 *     units = units.strip()
 *     units = units[0:len(units)-1] #Leave off the null character
 */
  if (unlikely(__pyx_v__OutputName == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(1, 209, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_v__OutputName); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 209, __pyx_L1_error)
  if (unlikely(__pyx_v_units == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(1, 209, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyBytes_AsWritableString(__pyx_v_units); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(1, 209, __pyx_L1_error)
  __pyx_v_output = HumidAir::HAProps_Aux(__pyx_t_4, __pyx_v_T, __pyx_v_p, __pyx_v_w, __pyx_t_5);

  /* "HumidAirProp.pyx":210
 * 
 *     output = _HAProps_Aux(_OutputName,T,p,w,units)
 *     units = units.strip()             # <<<<<<<<<<<<<<
 *     units = units[0:len(units)-1] #Leave off the null character
 *     return output, units
 */
  __pyx_t_1 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyBytes_Type_strip, __pyx_v_units); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(1, 210, __pyx_L1_error)
  __Pyx_DECREF_SET(__pyx_v_units, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "HumidAirProp.pyx":211
 *     output = _HAProps_Aux(_OutputName,T,p,w,units)
 *     units = units.strip()
 *     units = units[0:len(units)-1] #Leave off the null character             # <<<<<<<<<<<<<<
 *     return output, units
 * 
 */
  if (unlikely(__pyx_v_units == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 211, __pyx_L1_error)
  }
  if (unlikely(__pyx_v_units == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 211, __pyx_L1_error)
  }
  __pyx_t_6 = PyBytes_GET_SIZE(__pyx_v_units); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 211, __pyx_L1_error)
  __pyx_t_1 = PySequence_GetSlice(__pyx_v_units, 0, (__pyx_t_6 - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_units, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;

  /* "HumidAirProp.pyx":212
 *     units = units.strip()
 *     units = units[0:len(units)-1] #Leave off the null character
 *     return output, units             # <<<<<<<<<<<<<<
 * 
 * cpdef double cair_sat(double T):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_output); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_units);
  __Pyx_GIVEREF(__pyx_v_units);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_units);
  __pyx_t_1 = 0;
  __pyx_r = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "HumidAirProp.pyx":184
 *         raise TypeError('Numerical inputs to HAProps must be ints, floats, lists, or 1D numpy arrays.')
 * 
 * cpdef tuple HAProps_Aux(str OutputName, double T, double p, double w):             # <<<<<<<<<<<<<<
 *     """
 *     Allows low-level access to some of the routines employed in HumidAirProps
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("CoolProp.CoolProp.HAProps_Aux", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_units);
  __Pyx_XDECREF(__pyx_v__OutputName);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5HAProps_Aux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_4HAProps_Aux[] = "\n    Allows low-level access to some of the routines employed in HumidAirProps\n\n    Returns tuples of the form ``(Value, Units)`` where ``Value`` is the actual value and ``Units`` is a string that describes the units\n\n    The list of possible inputs is\n\n    * Baa [First virial air-air coefficient]\n    * Caaa [Second virial air coefficient]\n    * Bww [First virial water-water coefficient]\n    * Cwww [Second virial water coefficient]\n    * Baw [First cross virial coefficient]\n    * Caww [Second air-water-water virial coefficient]\n    * Caaw [Second air-air-water virial coefficient]\n    * beta_H \n    * kT\n    * vbar_ws [Molar saturated volume of water vapor]\n    * p_ws [Saturated vapor pressure of pure water (>=0.01C) or ice (<0.01 C)]\n    * f [Enhancement factor]\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5HAProps_Aux(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_OutputName = 0;
  double __pyx_v_T;
  double __pyx_v_p;
  double __pyx_v_w;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("HAProps_Aux (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_OutputName,&__pyx_n_s_T,&__pyx_n_s_p,&__pyx_n_s_w,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_OutputName)) != 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_T)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps_Aux", 1, 4, 4, 1); __PYX_ERR(1, 184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps_Aux", 1, 4, 4, 2); __PYX_ERR(1, 184, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("HAProps_Aux", 1, 4, 4, 3); __PYX_ERR(1, 184, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "HAProps_Aux") < 0)) __PYX_ERR(1, 184, __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_OutputName = ((PyObject*)values[0]);
    __pyx_v_T = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_T == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 184, __pyx_L3_error)
    __pyx_v_p = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 184, __pyx_L3_error)
    __pyx_v_w = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_w == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 184, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("HAProps_Aux", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 184, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.HAProps_Aux", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_OutputName), (&PyString_Type), 1, "OutputName", 1))) __PYX_ERR(1, 184, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_4HAProps_Aux(__pyx_self, __pyx_v_OutputName, __pyx_v_T, __pyx_v_p, __pyx_v_w);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_4HAProps_Aux(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_OutputName, double __pyx_v_T, double __pyx_v_p, double __pyx_v_w) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("HAProps_Aux", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_HAProps_Aux(__pyx_v_OutputName, __pyx_v_T, __pyx_v_p, __pyx_v_w, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 184, __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("CoolProp.CoolProp.HAProps_Aux", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "HumidAirProp.pyx":214
 *     return output, units
 * 
 * cpdef double cair_sat(double T):             # <<<<<<<<<<<<<<
 *     """
 *     The derivative of the saturation enthalpy cair_sat = d(hsat)/dT
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_7cair_sat(PyObject *__pyx_self, PyObject *__pyx_arg_T); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_cair_sat(double __pyx_v_T, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cair_sat", 0);

  /* "HumidAirProp.pyx":218
 *     The derivative of the saturation enthalpy cair_sat = d(hsat)/dT
 *     """
 *     return _cair_sat(T)             # <<<<<<<<<<<<<<
 */
  __pyx_r = HumidAir::cair_sat(__pyx_v_T);
  goto __pyx_L0;

  /* "HumidAirProp.pyx":214
 *     return output, units
 * 
 * cpdef double cair_sat(double T):             # <<<<<<<<<<<<<<
 *     """
 *     The derivative of the saturation enthalpy cair_sat = d(hsat)/dT
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_7cair_sat(PyObject *__pyx_self, PyObject *__pyx_arg_T); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_6cair_sat[] = "\n    The derivative of the saturation enthalpy cair_sat = d(hsat)/dT\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_7cair_sat(PyObject *__pyx_self, PyObject *__pyx_arg_T) {
  double __pyx_v_T;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cair_sat (wrapper)", 0);
  assert(__pyx_arg_T); {
    __pyx_v_T = __pyx_PyFloat_AsDouble(__pyx_arg_T); if (unlikely((__pyx_v_T == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 214, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.cair_sat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_6cair_sat(__pyx_self, ((double)__pyx_v_T));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_6cair_sat(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_T) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("cair_sat", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_8CoolProp_8CoolProp_cair_sat(__pyx_v_T, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 214, __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("CoolProp.CoolProp.cair_sat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":30
 * 
 * cdef class PyPhaseEnvelopeData:
 *     cpdef public bool TypeI             # <<<<<<<<<<<<<<
 *     cpdef public size_t iTsat_max, ipsat_max, icrit
 *     cpdef public list T, p, lnT, lnp, rhomolar_liq, rhomolar_vap, lnrhomolar_liq, lnrhomolar_vap, hmolar_liq, hmolar_vap, smolar_liq, smolar_vap, Q
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->TypeI); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 30, __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("CoolProp.CoolProp.PyPhaseEnvelopeData.TypeI.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(3, 30, __pyx_L1_error)
  __pyx_v_self->TypeI = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.TypeI.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":31
 * cdef class PyPhaseEnvelopeData:
 *     cpdef public bool TypeI
 *     cpdef public size_t iTsat_max, ipsat_max, icrit             # <<<<<<<<<<<<<<
 *     cpdef public list T, p, lnT, lnp, rhomolar_liq, rhomolar_vap, lnrhomolar_liq, lnrhomolar_vap, hmolar_liq, hmolar_vap, smolar_liq, smolar_vap, Q
 *     cpdef public list x, y, K
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->iTsat_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31, __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("CoolProp.CoolProp.PyPhaseEnvelopeData.iTsat_max.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  size_t __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __Pyx_PyInt_As_size_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 31, __pyx_L1_error)
  __pyx_v_self->iTsat_max = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.iTsat_max.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->ipsat_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31, __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("CoolProp.CoolProp.PyPhaseEnvelopeData.ipsat_max.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  size_t __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __Pyx_PyInt_As_size_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 31, __pyx_L1_error)
  __pyx_v_self->ipsat_max = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.ipsat_max.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->icrit); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31, __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("CoolProp.CoolProp.PyPhaseEnvelopeData.icrit.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  size_t __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __Pyx_PyInt_As_size_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(3, 31, __pyx_L1_error)
  __pyx_v_self->icrit = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.icrit.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":32
 *     cpdef public bool TypeI
 *     cpdef public size_t iTsat_max, ipsat_max, icrit
 *     cpdef public list T, p, lnT, lnp, rhomolar_liq, rhomolar_vap, lnrhomolar_liq, lnrhomolar_vap, hmolar_liq, hmolar_vap, smolar_liq, smolar_vap, Q             # <<<<<<<<<<<<<<
 *     cpdef public list x, y, K
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->T);
  __pyx_r = __pyx_v_self->T;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->T);
  __Pyx_DECREF(__pyx_v_self->T);
  __pyx_v_self->T = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.T.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->T);
  __Pyx_DECREF(__pyx_v_self->T);
  __pyx_v_self->T = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->p);
  __pyx_r = __pyx_v_self->p;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->p);
  __Pyx_DECREF(__pyx_v_self->p);
  __pyx_v_self->p = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.p.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->p);
  __Pyx_DECREF(__pyx_v_self->p);
  __pyx_v_self->p = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->lnT);
  __pyx_r = __pyx_v_self->lnT;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->lnT);
  __Pyx_DECREF(__pyx_v_self->lnT);
  __pyx_v_self->lnT = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.lnT.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->lnT);
  __Pyx_DECREF(__pyx_v_self->lnT);
  __pyx_v_self->lnT = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->lnp);
  __pyx_r = __pyx_v_self->lnp;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->lnp);
  __Pyx_DECREF(__pyx_v_self->lnp);
  __pyx_v_self->lnp = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.lnp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->lnp);
  __Pyx_DECREF(__pyx_v_self->lnp);
  __pyx_v_self->lnp = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->rhomolar_liq);
  __pyx_r = __pyx_v_self->rhomolar_liq;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->rhomolar_liq);
  __Pyx_DECREF(__pyx_v_self->rhomolar_liq);
  __pyx_v_self->rhomolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.rhomolar_liq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->rhomolar_liq);
  __Pyx_DECREF(__pyx_v_self->rhomolar_liq);
  __pyx_v_self->rhomolar_liq = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->rhomolar_vap);
  __pyx_r = __pyx_v_self->rhomolar_vap;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->rhomolar_vap);
  __Pyx_DECREF(__pyx_v_self->rhomolar_vap);
  __pyx_v_self->rhomolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.rhomolar_vap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->rhomolar_vap);
  __Pyx_DECREF(__pyx_v_self->rhomolar_vap);
  __pyx_v_self->rhomolar_vap = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->lnrhomolar_liq);
  __pyx_r = __pyx_v_self->lnrhomolar_liq;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->lnrhomolar_liq);
  __Pyx_DECREF(__pyx_v_self->lnrhomolar_liq);
  __pyx_v_self->lnrhomolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.lnrhomolar_liq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->lnrhomolar_liq);
  __Pyx_DECREF(__pyx_v_self->lnrhomolar_liq);
  __pyx_v_self->lnrhomolar_liq = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->lnrhomolar_vap);
  __pyx_r = __pyx_v_self->lnrhomolar_vap;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->lnrhomolar_vap);
  __Pyx_DECREF(__pyx_v_self->lnrhomolar_vap);
  __pyx_v_self->lnrhomolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.lnrhomolar_vap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->lnrhomolar_vap);
  __Pyx_DECREF(__pyx_v_self->lnrhomolar_vap);
  __pyx_v_self->lnrhomolar_vap = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->hmolar_liq);
  __pyx_r = __pyx_v_self->hmolar_liq;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->hmolar_liq);
  __Pyx_DECREF(__pyx_v_self->hmolar_liq);
  __pyx_v_self->hmolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.hmolar_liq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->hmolar_liq);
  __Pyx_DECREF(__pyx_v_self->hmolar_liq);
  __pyx_v_self->hmolar_liq = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->hmolar_vap);
  __pyx_r = __pyx_v_self->hmolar_vap;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->hmolar_vap);
  __Pyx_DECREF(__pyx_v_self->hmolar_vap);
  __pyx_v_self->hmolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.hmolar_vap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->hmolar_vap);
  __Pyx_DECREF(__pyx_v_self->hmolar_vap);
  __pyx_v_self->hmolar_vap = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->smolar_liq);
  __pyx_r = __pyx_v_self->smolar_liq;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->smolar_liq);
  __Pyx_DECREF(__pyx_v_self->smolar_liq);
  __pyx_v_self->smolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.smolar_liq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->smolar_liq);
  __Pyx_DECREF(__pyx_v_self->smolar_liq);
  __pyx_v_self->smolar_liq = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->smolar_vap);
  __pyx_r = __pyx_v_self->smolar_vap;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->smolar_vap);
  __Pyx_DECREF(__pyx_v_self->smolar_vap);
  __pyx_v_self->smolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.smolar_vap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->smolar_vap);
  __Pyx_DECREF(__pyx_v_self->smolar_vap);
  __pyx_v_self->smolar_vap = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->Q);
  __pyx_r = __pyx_v_self->Q;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->Q);
  __Pyx_DECREF(__pyx_v_self->Q);
  __pyx_v_self->Q = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.Q.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->Q);
  __Pyx_DECREF(__pyx_v_self->Q);
  __pyx_v_self->Q = ((PyObject*)Py_None);

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

/* "AbstractState.pxd":33
 *     cpdef public size_t iTsat_max, ipsat_max, icrit
 *     cpdef public list T, p, lnT, lnp, rhomolar_liq, rhomolar_vap, lnrhomolar_liq, lnrhomolar_vap, hmolar_liq, hmolar_vap, smolar_liq, smolar_vap, Q
 *     cpdef public list x, y, K             # <<<<<<<<<<<<<<
 * 
 * cdef class PyGuessesStructure:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->x);
  __pyx_r = __pyx_v_self->x;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 33, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->x);
  __Pyx_DECREF(__pyx_v_self->x);
  __pyx_v_self->x = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.x.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->x);
  __Pyx_DECREF(__pyx_v_self->x);
  __pyx_v_self->x = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->y);
  __pyx_r = __pyx_v_self->y;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 33, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->y);
  __Pyx_DECREF(__pyx_v_self->y);
  __pyx_v_self->y = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.y.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->y);
  __Pyx_DECREF(__pyx_v_self->y);
  __pyx_v_self->y = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->K);
  __pyx_r = __pyx_v_self->K;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 33, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->K);
  __Pyx_DECREF(__pyx_v_self->K);
  __pyx_v_self->K = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.K.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->K);
  __Pyx_DECREF(__pyx_v_self->K);
  __pyx_v_self->K = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 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_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_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_8CoolProp_8CoolProp_19PyPhaseEnvelopeData___reduce_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData___reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __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;
  int __pyx_t_7;
  int __pyx_t_8;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.K, self.Q, self.T, self.TypeI, self.hmolar_liq, self.hmolar_vap, self.iTsat_max, self.icrit, self.ipsat_max, self.lnT, self.lnp, self.lnrhomolar_liq, self.lnrhomolar_vap, self.p, self.rhomolar_liq, self.rhomolar_vap, self.smolar_liq, self.smolar_vap, self.x, self.y)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->TypeI); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_self->iTsat_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_self->icrit); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_self->ipsat_max); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(20); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_self->K);
  __Pyx_GIVEREF(__pyx_v_self->K);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_self->K);
  __Pyx_INCREF(__pyx_v_self->Q);
  __Pyx_GIVEREF(__pyx_v_self->Q);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_self->Q);
  __Pyx_INCREF(__pyx_v_self->T);
  __Pyx_GIVEREF(__pyx_v_self->T);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_self->T);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->hmolar_liq);
  __Pyx_GIVEREF(__pyx_v_self->hmolar_liq);
  PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_self->hmolar_liq);
  __Pyx_INCREF(__pyx_v_self->hmolar_vap);
  __Pyx_GIVEREF(__pyx_v_self->hmolar_vap);
  PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_v_self->hmolar_vap);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 7, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 8, __pyx_t_4);
  __Pyx_INCREF(__pyx_v_self->lnT);
  __Pyx_GIVEREF(__pyx_v_self->lnT);
  PyTuple_SET_ITEM(__pyx_t_5, 9, __pyx_v_self->lnT);
  __Pyx_INCREF(__pyx_v_self->lnp);
  __Pyx_GIVEREF(__pyx_v_self->lnp);
  PyTuple_SET_ITEM(__pyx_t_5, 10, __pyx_v_self->lnp);
  __Pyx_INCREF(__pyx_v_self->lnrhomolar_liq);
  __Pyx_GIVEREF(__pyx_v_self->lnrhomolar_liq);
  PyTuple_SET_ITEM(__pyx_t_5, 11, __pyx_v_self->lnrhomolar_liq);
  __Pyx_INCREF(__pyx_v_self->lnrhomolar_vap);
  __Pyx_GIVEREF(__pyx_v_self->lnrhomolar_vap);
  PyTuple_SET_ITEM(__pyx_t_5, 12, __pyx_v_self->lnrhomolar_vap);
  __Pyx_INCREF(__pyx_v_self->p);
  __Pyx_GIVEREF(__pyx_v_self->p);
  PyTuple_SET_ITEM(__pyx_t_5, 13, __pyx_v_self->p);
  __Pyx_INCREF(__pyx_v_self->rhomolar_liq);
  __Pyx_GIVEREF(__pyx_v_self->rhomolar_liq);
  PyTuple_SET_ITEM(__pyx_t_5, 14, __pyx_v_self->rhomolar_liq);
  __Pyx_INCREF(__pyx_v_self->rhomolar_vap);
  __Pyx_GIVEREF(__pyx_v_self->rhomolar_vap);
  PyTuple_SET_ITEM(__pyx_t_5, 15, __pyx_v_self->rhomolar_vap);
  __Pyx_INCREF(__pyx_v_self->smolar_liq);
  __Pyx_GIVEREF(__pyx_v_self->smolar_liq);
  PyTuple_SET_ITEM(__pyx_t_5, 16, __pyx_v_self->smolar_liq);
  __Pyx_INCREF(__pyx_v_self->smolar_vap);
  __Pyx_GIVEREF(__pyx_v_self->smolar_vap);
  PyTuple_SET_ITEM(__pyx_t_5, 17, __pyx_v_self->smolar_vap);
  __Pyx_INCREF(__pyx_v_self->x);
  __Pyx_GIVEREF(__pyx_v_self->x);
  PyTuple_SET_ITEM(__pyx_t_5, 18, __pyx_v_self->x);
  __Pyx_INCREF(__pyx_v_self->y);
  __Pyx_GIVEREF(__pyx_v_self->y);
  PyTuple_SET_ITEM(__pyx_t_5, 19, __pyx_v_self->y);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.K, self.Q, self.T, self.TypeI, self.hmolar_liq, self.hmolar_vap, self.iTsat_max, self.icrit, self.ipsat_max, self.lnT, self.lnp, self.lnrhomolar_liq, self.lnrhomolar_vap, self.p, self.rhomolar_liq, self.rhomolar_vap, self.smolar_liq, self.smolar_vap, self.x, self.y)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.K, self.Q, self.T, self.TypeI, self.hmolar_liq, self.hmolar_vap, self.iTsat_max, self.icrit, self.ipsat_max, self.lnT, self.lnp, self.lnrhomolar_liq, self.lnrhomolar_vap, self.p, self.rhomolar_liq, self.rhomolar_vap, self.smolar_liq, self.smolar_vap, self.x, self.y)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  __pyx_t_7 = (__pyx_t_6 != 0);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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 = self.K is not None or self.Q is not None or self.T is not None or self.hmolar_liq is not None or self.hmolar_vap is not None or self.lnT is not None or self.lnp is not None or self.lnrhomolar_liq is not None or self.lnrhomolar_vap is not None or self.p is not None or self.rhomolar_liq is not None or self.rhomolar_vap is not None or self.smolar_liq is not None or self.smolar_vap is not None or self.x is not None or self.y is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.K, self.Q, self.T, self.TypeI, self.hmolar_liq, self.hmolar_vap, self.iTsat_max, self.icrit, self.ipsat_max, self.lnT, self.lnp, self.lnrhomolar_liq, self.lnrhomolar_vap, self.p, self.rhomolar_liq, self.rhomolar_vap, self.smolar_liq, self.smolar_vap, self.x, self.y)
 *     _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 = self.K is not None or self.Q is not None or self.T is not None or self.hmolar_liq is not None or self.hmolar_vap is not None or self.lnT is not None or self.lnp is not None or self.lnrhomolar_liq is not None or self.lnrhomolar_vap is not None or self.p is not None or self.rhomolar_liq is not None or self.rhomolar_vap is not None or self.smolar_liq is not None or self.smolar_vap is not None or self.x is not None or self.y is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, None), state
 */
  /*else*/ {
    __pyx_t_6 = (__pyx_v_self->K != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->Q != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_7 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->T != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->hmolar_liq != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_7 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->hmolar_vap != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->lnT != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_7 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->lnp != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->lnrhomolar_liq != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_7 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->lnrhomolar_vap != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->p != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_7 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->rhomolar_liq != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->rhomolar_vap != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_7 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->smolar_liq != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->smolar_vap != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_7 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (__pyx_v_self->x != ((PyObject*)Py_None));
    __pyx_t_8 = (__pyx_t_6 != 0);
    if (!__pyx_t_8) {
    } else {
      __pyx_t_7 = __pyx_t_8;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_8 = (__pyx_v_self->y != ((PyObject*)Py_None));
    __pyx_t_6 = (__pyx_t_8 != 0);
    __pyx_t_7 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_7;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.K is not None or self.Q is not None or self.T is not None or self.hmolar_liq is not None or self.hmolar_vap is not None or self.lnT is not None or self.lnp is not None or self.lnrhomolar_liq is not None or self.lnrhomolar_vap is not None or self.p is not None or self.rhomolar_liq is not None or self.rhomolar_vap is not None or self.smolar_liq is not None or self.smolar_vap is not None or self.x is not None or self.y is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, None), state
 *     else:
 */
  __pyx_t_7 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_7) {

    /* "(tree fragment)":13
 *         use_setstate = self.K is not None or self.Q is not None or self.T is not None or self.hmolar_liq is not None or self.hmolar_vap is not None or self.lnT is not None or self.lnp is not None or self.lnrhomolar_liq is not None or self.lnrhomolar_vap is not None or self.p is not None or self.rhomolar_liq is not None or self.rhomolar_vap is not None or self.smolar_liq is not None or self.smolar_vap is not None or self.x is not None or self.y is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_PyPhaseEnvelopeDa); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_263767809);
    __Pyx_GIVEREF(__pyx_int_263767809);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_263767809);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.K is not None or self.Q is not None or self.T is not None or self.hmolar_liq is not None or self.hmolar_vap is not None or self.lnT is not None or self.lnp is not None or self.lnrhomolar_liq is not None or self.lnrhomolar_vap is not None or self.p is not None or self.rhomolar_liq is not None or self.rhomolar_vap is not None or self.smolar_liq is not None or self.smolar_vap is not None or self.x is not None or self.y is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, None), state
 *     else:
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PyPhaseEnvelopeData__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_PyPhaseEnvelopeDa); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_263767809);
    __Pyx_GIVEREF(__pyx_int_263767809);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_263767809);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
    __pyx_t_3 = 0;
    __pyx_t_5 = 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_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyPhaseEnvelopeData.__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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PyPhaseEnvelopeData__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_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_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_2__setstate_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_2__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PyPhaseEnvelopeData, (type(self), 0xfb8c701, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PyPhaseEnvelopeData__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(4, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyPhaseEnvelopeData__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_PyPhaseEnvelopeData, (type(self), 0xfb8c701, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PyPhaseEnvelopeData__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("CoolProp.CoolProp.PyPhaseEnvelopeData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":41
 * 
 * cdef class PyCriticalState:
 *     cpdef public double T, p, rhomolar, hmolar, smolar             # <<<<<<<<<<<<<<
 *     cpdef public bool stable
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1T_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1T___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->T); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 41, __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("CoolProp.CoolProp.PyCriticalState.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1T_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1T_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1T_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1T_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 41, __pyx_L1_error)
  __pyx_v_self->T = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyCriticalState.T.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1p_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1p_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1p___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->p); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 41, __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("CoolProp.CoolProp.PyCriticalState.p.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1p_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1p_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1p_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_1p_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 41, __pyx_L1_error)
  __pyx_v_self->p = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyCriticalState.p.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rhomolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 41, __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("CoolProp.CoolProp.PyCriticalState.rhomolar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 41, __pyx_L1_error)
  __pyx_v_self->rhomolar = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyCriticalState.rhomolar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6hmolar___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6hmolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->hmolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 41, __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("CoolProp.CoolProp.PyCriticalState.hmolar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 41, __pyx_L1_error)
  __pyx_v_self->hmolar = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyCriticalState.hmolar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6smolar_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6smolar_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6smolar___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6smolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->smolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 41, __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("CoolProp.CoolProp.PyCriticalState.smolar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6smolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6smolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6smolar_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6smolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 41, __pyx_L1_error)
  __pyx_v_self->smolar = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyCriticalState.smolar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":42
 * cdef class PyCriticalState:
 *     cpdef public double T, p, rhomolar, hmolar, smolar
 *     cpdef public bool stable             # <<<<<<<<<<<<<<
 * 
 * cdef class PySpinodalData:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6stable_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6stable_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6stable___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6stable___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->stable); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 42, __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("CoolProp.CoolProp.PyCriticalState.stable.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6stable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6stable_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6stable_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_6stable_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(3, 42, __pyx_L1_error)
  __pyx_v_self->stable = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyCriticalState.stable.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_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_8CoolProp_8CoolProp_15PyCriticalState___reduce_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState___reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __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_t_9;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.T, self.hmolar, self.p, self.rhomolar, self.smolar, self.stable)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->T); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->hmolar); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->p); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->rhomolar); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->smolar); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_self->stable); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.T, self.hmolar, self.p, self.rhomolar, self.smolar, self.stable)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.T, self.hmolar, self.p, self.rhomolar, self.smolar, self.stable)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  __pyx_t_9 = (__pyx_t_8 != 0);
  if (__pyx_t_9) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 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 = (self.T, self.hmolar, self.p, self.rhomolar, self.smolar, self.stable)
 *     _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_PyCriticalState, (type(self), 0xb5e5983, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PyCriticalState, (type(self), 0xb5e5983, None), state
 *     else:
 */
  __pyx_t_9 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_9) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_PyCriticalState, (type(self), 0xb5e5983, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PyCriticalState, (type(self), 0xb5e5983, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_PyCriticalState); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_190732675);
    __Pyx_GIVEREF(__pyx_int_190732675);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_190732675);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state);
    __pyx_t_6 = 0;
    __pyx_t_7 = 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_PyCriticalState, (type(self), 0xb5e5983, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PyCriticalState, (type(self), 0xb5e5983, None), state
 *     else:
 *         return __pyx_unpickle_PyCriticalState, (type(self), 0xb5e5983, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PyCriticalState__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_PyCriticalState); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_190732675);
    __Pyx_GIVEREF(__pyx_int_190732675);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_190732675);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 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_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("CoolProp.CoolProp.PyCriticalState.__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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PyCriticalState, (type(self), 0xb5e5983, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PyCriticalState__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_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_8CoolProp_8CoolProp_15PyCriticalState_2__setstate_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_15PyCriticalState_2__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PyCriticalState, (type(self), 0xb5e5983, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PyCriticalState__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(4, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyCriticalState__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_PyCriticalState, (type(self), 0xb5e5983, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PyCriticalState__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("CoolProp.CoolProp.PyCriticalState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":12
 * 
 * cdef class PyGuessesStructure:
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.T = get_HUGE()
 *         self.p = get_HUGE()
 */

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure___init__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure___init__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "AbstractState.pyx":13
 * cdef class PyGuessesStructure:
 *     def __init__(self):
 *         self.T = get_HUGE()             # <<<<<<<<<<<<<<
 *         self.p = get_HUGE()
 *         self.rhomolar = get_HUGE()
 */
  __pyx_v_self->T = get_HUGE();

  /* "AbstractState.pyx":14
 *     def __init__(self):
 *         self.T = get_HUGE()
 *         self.p = get_HUGE()             # <<<<<<<<<<<<<<
 *         self.rhomolar = get_HUGE()
 *         self.hmolar = get_HUGE()
 */
  __pyx_v_self->p = get_HUGE();

  /* "AbstractState.pyx":15
 *         self.T = get_HUGE()
 *         self.p = get_HUGE()
 *         self.rhomolar = get_HUGE()             # <<<<<<<<<<<<<<
 *         self.hmolar = get_HUGE()
 *         self.smolar = get_HUGE()
 */
  __pyx_v_self->rhomolar = get_HUGE();

  /* "AbstractState.pyx":16
 *         self.p = get_HUGE()
 *         self.rhomolar = get_HUGE()
 *         self.hmolar = get_HUGE()             # <<<<<<<<<<<<<<
 *         self.smolar = get_HUGE()
 *         self.rhomolar_liq = get_HUGE()
 */
  __pyx_v_self->hmolar = get_HUGE();

  /* "AbstractState.pyx":17
 *         self.rhomolar = get_HUGE()
 *         self.hmolar = get_HUGE()
 *         self.smolar = get_HUGE()             # <<<<<<<<<<<<<<
 *         self.rhomolar_liq = get_HUGE()
 *         self.rhomolar_vap = get_HUGE()
 */
  __pyx_v_self->smolar = get_HUGE();

  /* "AbstractState.pyx":18
 *         self.hmolar = get_HUGE()
 *         self.smolar = get_HUGE()
 *         self.rhomolar_liq = get_HUGE()             # <<<<<<<<<<<<<<
 *         self.rhomolar_vap = get_HUGE()
 *         self.x = []
 */
  __pyx_v_self->rhomolar_liq = get_HUGE();

  /* "AbstractState.pyx":19
 *         self.smolar = get_HUGE()
 *         self.rhomolar_liq = get_HUGE()
 *         self.rhomolar_vap = get_HUGE()             # <<<<<<<<<<<<<<
 *         self.x = []
 *         self.y = []
 */
  __pyx_v_self->rhomolar_vap = get_HUGE();

  /* "AbstractState.pyx":20
 *         self.rhomolar_liq = get_HUGE()
 *         self.rhomolar_vap = get_HUGE()
 *         self.x = []             # <<<<<<<<<<<<<<
 *         self.y = []
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 20, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->x);
  __Pyx_DECREF(__pyx_v_self->x);
  __pyx_v_self->x = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":21
 *         self.rhomolar_vap = get_HUGE()
 *         self.x = []
 *         self.y = []             # <<<<<<<<<<<<<<
 * 
 * cdef class PySpinodalData:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->y);
  __Pyx_DECREF(__pyx_v_self->y);
  __pyx_v_self->y = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":12
 * 
 * cdef class PyGuessesStructure:
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.T = get_HUGE()
 *         self.p = get_HUGE()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":36
 * 
 * cdef class PyGuessesStructure:
 *     cpdef public double T, p, rhomolar, hmolar, smolar             # <<<<<<<<<<<<<<
 *     cpdef public double rhomolar_liq, rhomolar_vap
 *     cpdef public list x, y
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1T_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1T___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->T); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36, __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("CoolProp.CoolProp.PyGuessesStructure.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1T_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1T_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1T_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1T_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36, __pyx_L1_error)
  __pyx_v_self->T = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.T.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1p_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1p_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1p___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->p); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36, __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("CoolProp.CoolProp.PyGuessesStructure.p.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1p_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1p_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1p_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1p_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36, __pyx_L1_error)
  __pyx_v_self->p = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.p.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rhomolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36, __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("CoolProp.CoolProp.PyGuessesStructure.rhomolar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36, __pyx_L1_error)
  __pyx_v_self->rhomolar = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.rhomolar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->hmolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36, __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("CoolProp.CoolProp.PyGuessesStructure.hmolar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36, __pyx_L1_error)
  __pyx_v_self->hmolar = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.hmolar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->smolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 36, __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("CoolProp.CoolProp.PyGuessesStructure.smolar.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 36, __pyx_L1_error)
  __pyx_v_self->smolar = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.smolar.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":37
 * cdef class PyGuessesStructure:
 *     cpdef public double T, p, rhomolar, hmolar, smolar
 *     cpdef public double rhomolar_liq, rhomolar_vap             # <<<<<<<<<<<<<<
 *     cpdef public list x, y
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rhomolar_liq); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 37, __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("CoolProp.CoolProp.PyGuessesStructure.rhomolar_liq.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 37, __pyx_L1_error)
  __pyx_v_self->rhomolar_liq = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.rhomolar_liq.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rhomolar_vap); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 37, __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("CoolProp.CoolProp.PyGuessesStructure.rhomolar_vap.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 37, __pyx_L1_error)
  __pyx_v_self->rhomolar_vap = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.rhomolar_vap.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":38
 *     cpdef public double T, p, rhomolar, hmolar, smolar
 *     cpdef public double rhomolar_liq, rhomolar_vap
 *     cpdef public list x, y             # <<<<<<<<<<<<<<
 * 
 * cdef class PyCriticalState:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->x);
  __pyx_r = __pyx_v_self->x;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 38, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->x);
  __Pyx_DECREF(__pyx_v_self->x);
  __pyx_v_self->x = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.x.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1x_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->x);
  __Pyx_DECREF(__pyx_v_self->x);
  __pyx_v_self->x = ((PyObject*)Py_None);

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y___get__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->y);
  __pyx_r = __pyx_v_self->y;
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__set__", 0);
  if (!(likely(PyList_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(3, 38, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->y);
  __Pyx_DECREF(__pyx_v_self->y);
  __pyx_v_self->y = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.y.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_5__del__(PyObject *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y_4__del__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static int __pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_1y_4__del__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 0);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->y);
  __Pyx_DECREF(__pyx_v_self->y);
  __pyx_v_self->y = ((PyObject*)Py_None);

  /* function exit code */
  __pyx_r = 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_8CoolProp_8CoolProp_18PyGuessesStructure_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_3__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_8CoolProp_8CoolProp_18PyGuessesStructure_2__reduce_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_2__reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __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;
  int __pyx_t_10;
  int __pyx_t_11;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.T, self.hmolar, self.p, self.rhomolar, self.rhomolar_liq, self.rhomolar_vap, self.smolar, self.x, self.y)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->T); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->hmolar); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->p); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->rhomolar); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->rhomolar_liq); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->rhomolar_vap); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->smolar); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyTuple_New(9); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_8, 6, __pyx_t_7);
  __Pyx_INCREF(__pyx_v_self->x);
  __Pyx_GIVEREF(__pyx_v_self->x);
  PyTuple_SET_ITEM(__pyx_t_8, 7, __pyx_v_self->x);
  __Pyx_INCREF(__pyx_v_self->y);
  __Pyx_GIVEREF(__pyx_v_self->y);
  PyTuple_SET_ITEM(__pyx_t_8, 8, __pyx_v_self->y);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.T, self.hmolar, self.p, self.rhomolar, self.rhomolar_liq, self.rhomolar_vap, self.smolar, self.x, self.y)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_8 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_v__dict = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "(tree fragment)":7
 *     state = (self.T, self.hmolar, self.p, self.rhomolar, self.rhomolar_liq, self.rhomolar_vap, self.smolar, self.x, self.y)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_9 = (__pyx_v__dict != Py_None);
  __pyx_t_10 = (__pyx_t_9 != 0);
  if (__pyx_t_10) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v__dict);
    __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_7));
    __pyx_t_7 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.x is not None or self.y is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.T, self.hmolar, self.p, self.rhomolar, self.rhomolar_liq, self.rhomolar_vap, self.smolar, self.x, self.y)
 *     _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 = self.x is not None or self.y is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, None), state
 */
  /*else*/ {
    __pyx_t_9 = (__pyx_v_self->x != ((PyObject*)Py_None));
    __pyx_t_11 = (__pyx_t_9 != 0);
    if (!__pyx_t_11) {
    } else {
      __pyx_t_10 = __pyx_t_11;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_11 = (__pyx_v_self->y != ((PyObject*)Py_None));
    __pyx_t_9 = (__pyx_t_11 != 0);
    __pyx_t_10 = __pyx_t_9;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_10;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.x is not None or self.y is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, None), state
 *     else:
 */
  __pyx_t_10 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_10) {

    /* "(tree fragment)":13
 *         use_setstate = self.x is not None or self.y is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_PyGuessesStructur); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_10895678);
    __Pyx_GIVEREF(__pyx_int_10895678);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_10895678);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_8, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.x is not None or self.y is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, None), state
 *     else:
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PyGuessesStructure__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_PyGuessesStructur); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_10895678);
    __Pyx_GIVEREF(__pyx_int_10895678);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_10895678);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8);
    __pyx_t_6 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 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_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_8);
  __Pyx_AddTraceback("CoolProp.CoolProp.PyGuessesStructure.__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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PyGuessesStructure__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_5__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_8CoolProp_8CoolProp_18PyGuessesStructure_4__setstate_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18PyGuessesStructure_4__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PyGuessesStructure, (type(self), 0x0a6413e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PyGuessesStructure__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(4, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyGuessesStructure__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_PyGuessesStructure, (type(self), 0x0a6413e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PyGuessesStructure__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("CoolProp.CoolProp.PyGuessesStructure.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pxd":45
 * 
 * cdef class PySpinodalData:
 *     cpdef public vector[double] tau, delta, M1             # <<<<<<<<<<<<<<
 * 
 * cdef class AbstractState:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3tau_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3tau_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_3tau___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_3tau___get__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->tau); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 45, __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("CoolProp.CoolProp.PySpinodalData.tau.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3tau_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3tau_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_3tau_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_3tau_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  std::vector<double>  __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_convert_vector_from_py_double(__pyx_v_value); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 45, __pyx_L1_error)
  __pyx_v_self->tau = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PySpinodalData.tau.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_5delta_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_5delta_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_5delta___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_5delta___get__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 45, __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("CoolProp.CoolProp.PySpinodalData.delta.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_5delta_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_5delta_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_5delta_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_5delta_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  std::vector<double>  __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_convert_vector_from_py_double(__pyx_v_value); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 45, __pyx_L1_error)
  __pyx_v_self->delta = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PySpinodalData.delta.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_2M1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_2M1_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2M1___get__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2M1___get__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->M1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 45, __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("CoolProp.CoolProp.PySpinodalData.M1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_2M1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_2M1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2M1_2__set__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2M1_2__set__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  std::vector<double>  __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __pyx_convert_vector_from_py_double(__pyx_v_value); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 45, __pyx_L1_error)
  __pyx_v_self->M1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PySpinodalData.M1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_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_8CoolProp_8CoolProp_14PySpinodalData___reduce_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData___reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __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_t_6;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.M1, self.delta, self.tau)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_self->M1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_vector_to_py_double(__pyx_v_self->delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_vector_to_py_double(__pyx_v_self->tau); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5, __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_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.M1, self.delta, self.tau)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.M1, self.delta, self.tau)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 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 = (self.M1, self.delta, self.tau)
 *     _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_PySpinodalData, (type(self), 0x592f492, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, None), state
 *     else:
 */
  __pyx_t_6 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_6) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_PySpinodalData); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_93516946);
    __Pyx_GIVEREF(__pyx_int_93516946);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_93516946);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, None), state
 *     else:
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PySpinodalData__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_PySpinodalData); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_93516946);
    __Pyx_GIVEREF(__pyx_int_93516946);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_93516946);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 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_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("CoolProp.CoolProp.PySpinodalData.__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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PySpinodalData__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_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_8CoolProp_8CoolProp_14PySpinodalData_2__setstate_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_14PySpinodalData_2__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PySpinodalData, (type(self), 0x592f492, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PySpinodalData__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(4, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PySpinodalData__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_PySpinodalData, (type(self), 0x592f492, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PySpinodalData__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("CoolProp.CoolProp.PySpinodalData.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":31
 *     """
 * 
 *     def __cinit__(self, string backend, string fluid):             # <<<<<<<<<<<<<<
 *         self.thisptr = cAbstractState.factory(backend, fluid)
 * 
 */

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_13AbstractState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8CoolProp_8CoolProp_13AbstractState_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_backend;
  std::string __pyx_v_fluid;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_backend,&__pyx_n_s_fluid,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_backend)) != 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_fluid)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(2, 31, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 31, __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_backend = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 31, __pyx_L3_error)
    __pyx_v_fluid = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 31, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 31, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState___cinit__(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_backend, __pyx_v_fluid);

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

static int __pyx_pf_8CoolProp_8CoolProp_13AbstractState___cinit__(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_backend, std::string __pyx_v_fluid) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  CoolProp::AbstractState *__pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "AbstractState.pyx":32
 * 
 *     def __cinit__(self, string backend, string fluid):
 *         self.thisptr = cAbstractState.factory(backend, fluid)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  try {
    __pyx_t_1 = CoolProp::AbstractState::factory(__pyx_v_backend, __pyx_v_fluid);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 32, __pyx_L1_error)
  }
  __pyx_v_self->thisptr = __pyx_t_1;

  /* "AbstractState.pyx":31
 *     """
 * 
 *     def __cinit__(self, string backend, string fluid):             # <<<<<<<<<<<<<<
 *         self.thisptr = cAbstractState.factory(backend, fluid)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":34
 *         self.thisptr = cAbstractState.factory(backend, fluid)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.thisptr
 * 
 */

/* Python wrapper */
static void __pyx_pw_8CoolProp_8CoolProp_13AbstractState_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_8CoolProp_8CoolProp_13AbstractState_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_8CoolProp_8CoolProp_13AbstractState_2__dealloc__(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static void __pyx_pf_8CoolProp_8CoolProp_13AbstractState_2__dealloc__(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "AbstractState.pyx":35
 * 
 *     def __dealloc__(self):
 *         del self.thisptr             # <<<<<<<<<<<<<<
 * 
 *     cpdef fluid_param_string(self, string key):
 */
  delete __pyx_v_self->thisptr;

  /* "AbstractState.pyx":34
 *         self.thisptr = cAbstractState.factory(backend, fluid)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.thisptr
 * 
 */

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

/* "AbstractState.pyx":37
 *         del self.thisptr
 * 
 *     cpdef fluid_param_string(self, string key):             # <<<<<<<<<<<<<<
 *         """ Get a fluid parameter string - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_param_string` """
 *         return self.thisptr.fluid_param_string(key)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_5fluid_param_string(PyObject *__pyx_v_self, PyObject *__pyx_arg_key); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_param_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_key, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  std::string __pyx_t_6;
  __Pyx_RefNannySetupContext("fluid_param_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fluid_param_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 37, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_5fluid_param_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 37, __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(2, 37, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":39
 *     cpdef fluid_param_string(self, string key):
 *         """ Get a fluid parameter string - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_param_string` """
 *         return self.thisptr.fluid_param_string(key)             # <<<<<<<<<<<<<<
 * 
 *     cpdef name(self):
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->fluid_param_string(__pyx_v_key);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 39, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":37
 *         del self.thisptr
 * 
 *     cpdef fluid_param_string(self, string key):             # <<<<<<<<<<<<<<
 *         """ Get a fluid parameter string - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_param_string` """
 *         return self.thisptr.fluid_param_string(key)
 */

  /* 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("CoolProp.CoolProp.AbstractState.fluid_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_5fluid_param_string(PyObject *__pyx_v_self, PyObject *__pyx_arg_key); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_4fluid_param_string[] = " Get a fluid parameter string - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_param_string` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_5fluid_param_string(PyObject *__pyx_v_self, PyObject *__pyx_arg_key) {
  std::string __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fluid_param_string (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = __pyx_convert_string_from_py_std__in_string(__pyx_arg_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 37, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.fluid_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_4fluid_param_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((std::string)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_4fluid_param_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("fluid_param_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_param_string(__pyx_v_self, __pyx_v_key, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 37, __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("CoolProp.CoolProp.AbstractState.fluid_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":41
 *         return self.thisptr.fluid_param_string(key)
 * 
 *     cpdef name(self):             # <<<<<<<<<<<<<<
 *         """ Get the fluid name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::name` """
 *         return self.thisptr.name()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_7name(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::string __pyx_t_5;
  __Pyx_RefNannySetupContext("name", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 41, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_7name)) {
        __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(2, 41, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":43
 *     cpdef name(self):
 *         """ Get the fluid name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::name` """
 *         return self.thisptr.name()             # <<<<<<<<<<<<<<
 *     cpdef backend_name(self):
 *         """ Get the backend name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::backend_name` """
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->name();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 43, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":41
 *         return self.thisptr.fluid_param_string(key)
 * 
 *     cpdef name(self):             # <<<<<<<<<<<<<<
 *         """ Get the fluid name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::name` """
 *         return self.thisptr.name()
 */

  /* 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("CoolProp.CoolProp.AbstractState.name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_7name(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_6name[] = " Get the fluid name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::name` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_7name(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("name (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_6name(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_6name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("name", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_name(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 41, __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("CoolProp.CoolProp.AbstractState.name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":44
 *         """ Get the fluid name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::name` """
 *         return self.thisptr.name()
 *     cpdef backend_name(self):             # <<<<<<<<<<<<<<
 *         """ Get the backend name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::backend_name` """
 *         return self.thisptr.backend_name()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_9backend_name(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_backend_name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::string __pyx_t_5;
  __Pyx_RefNannySetupContext("backend_name", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_backend_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 44, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_9backend_name)) {
        __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(2, 44, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":46
 *     cpdef backend_name(self):
 *         """ Get the backend name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::backend_name` """
 *         return self.thisptr.backend_name()             # <<<<<<<<<<<<<<
 *     cpdef fluid_names(self):
 *         """ Get the list of fluid names - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_names` """
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->backend_name();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 46, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":44
 *         """ Get the fluid name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::name` """
 *         return self.thisptr.name()
 *     cpdef backend_name(self):             # <<<<<<<<<<<<<<
 *         """ Get the backend name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::backend_name` """
 *         return self.thisptr.backend_name()
 */

  /* 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("CoolProp.CoolProp.AbstractState.backend_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_9backend_name(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_8backend_name[] = " Get the backend name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::backend_name` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_9backend_name(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("backend_name (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_8backend_name(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_8backend_name(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("backend_name", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_backend_name(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 44, __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("CoolProp.CoolProp.AbstractState.backend_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":47
 *         """ Get the backend name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::backend_name` """
 *         return self.thisptr.backend_name()
 *     cpdef fluid_names(self):             # <<<<<<<<<<<<<<
 *         """ Get the list of fluid names - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_names` """
 *         return self.thisptr.fluid_names()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_11fluid_names(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_names(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::vector<std::string>  __pyx_t_5;
  __Pyx_RefNannySetupContext("fluid_names", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fluid_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 47, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_11fluid_names)) {
        __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(2, 47, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":49
 *     cpdef fluid_names(self):
 *         """ Get the list of fluid names - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_names` """
 *         return self.thisptr.fluid_names()             # <<<<<<<<<<<<<<
 * 
 *     cpdef constants_header.phases phase(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->fluid_names();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 49, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_vector_to_py_std_3a__3a_string(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":47
 *         """ Get the backend name - wrapper of c++ function :cpapi:`CoolProp::AbstractState::backend_name` """
 *         return self.thisptr.backend_name()
 *     cpdef fluid_names(self):             # <<<<<<<<<<<<<<
 *         """ Get the list of fluid names - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_names` """
 *         return self.thisptr.fluid_names()
 */

  /* 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("CoolProp.CoolProp.AbstractState.fluid_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_11fluid_names(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_10fluid_names[] = " Get the list of fluid names - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fluid_names` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_11fluid_names(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fluid_names (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_10fluid_names(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_10fluid_names(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("fluid_names", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_names(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 47, __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("CoolProp.CoolProp.AbstractState.fluid_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":51
 *         return self.thisptr.fluid_names()
 * 
 *     cpdef constants_header.phases phase(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the phase as key value- wrapper of c++ function :cpapi:`CoolProp::AbstractState::phase` """
 *         return self.thisptr.phase()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_13phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static CoolProp::phases __pyx_f_8CoolProp_8CoolProp_13AbstractState_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  CoolProp::phases __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  CoolProp::phases __pyx_t_5;
  __Pyx_RefNannySetupContext("phase", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 51, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_13phase)) {
        __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(2, 51, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = ((CoolProp::phases)__Pyx_PyInt_As_CoolProp_3a__3a_phases(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 51, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":53
 *     cpdef constants_header.phases phase(self) except *:
 *         """ Get the phase as key value- wrapper of c++ function :cpapi:`CoolProp::AbstractState::phase` """
 *         return self.thisptr.phase()             # <<<<<<<<<<<<<<
 * 
 *     cpdef specify_phase(self, constants_header.phases phase):
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->phase();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 53, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":51
 *         return self.thisptr.fluid_names()
 * 
 *     cpdef constants_header.phases phase(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the phase as key value- wrapper of c++ function :cpapi:`CoolProp::AbstractState::phase` """
 *         return self.thisptr.phase()
 */

  /* 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("CoolProp.CoolProp.AbstractState.phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (CoolProp::phases) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_13phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_12phase[] = " Get the phase as key value- wrapper of c++ function :cpapi:`CoolProp::AbstractState::phase` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_13phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("phase (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_12phase(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_12phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  CoolProp::phases __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("phase", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_phase(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 51, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyInt_From_CoolProp_3a__3a_phases(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":55
 *         return self.thisptr.phase()
 * 
 *     cpdef specify_phase(self, constants_header.phases phase):             # <<<<<<<<<<<<<<
 *         """ Specify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::specify_phase` """
 *         self.thisptr.specify_phase(phase)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_15specify_phase(PyObject *__pyx_v_self, PyObject *__pyx_arg_phase); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_specify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::phases __pyx_v_phase, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("specify_phase", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_specify_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 55, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_15specify_phase)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_phases(__pyx_v_phase); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 55, __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(2, 55, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":57
 *     cpdef specify_phase(self, constants_header.phases phase):
 *         """ Specify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::specify_phase` """
 *         self.thisptr.specify_phase(phase)             # <<<<<<<<<<<<<<
 *     cpdef unspecify_phase(self):
 *         """ Unspecify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::unspecify_phase` """
 */
  try {
    __pyx_v_self->thisptr->specify_phase(__pyx_v_phase);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 57, __pyx_L1_error)
  }

  /* "AbstractState.pyx":55
 *         return self.thisptr.phase()
 * 
 *     cpdef specify_phase(self, constants_header.phases phase):             # <<<<<<<<<<<<<<
 *         """ Specify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::specify_phase` """
 *         self.thisptr.specify_phase(phase)
 */

  /* 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_AddTraceback("CoolProp.CoolProp.AbstractState.specify_phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_15specify_phase(PyObject *__pyx_v_self, PyObject *__pyx_arg_phase); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_14specify_phase[] = " Specify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::specify_phase` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_15specify_phase(PyObject *__pyx_v_self, PyObject *__pyx_arg_phase) {
  CoolProp::phases __pyx_v_phase;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("specify_phase (wrapper)", 0);
  assert(__pyx_arg_phase); {
    __pyx_v_phase = ((CoolProp::phases)__Pyx_PyInt_As_CoolProp_3a__3a_phases(__pyx_arg_phase)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 55, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.specify_phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_14specify_phase(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((CoolProp::phases)__pyx_v_phase));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_14specify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::phases __pyx_v_phase) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("specify_phase", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_specify_phase(__pyx_v_self, __pyx_v_phase, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 55, __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("CoolProp.CoolProp.AbstractState.specify_phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":58
 *         """ Specify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::specify_phase` """
 *         self.thisptr.specify_phase(phase)
 *     cpdef unspecify_phase(self):             # <<<<<<<<<<<<<<
 *         """ Unspecify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::unspecify_phase` """
 *         self.thisptr.unspecify_phase()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_17unspecify_phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_unspecify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("unspecify_phase", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unspecify_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 58, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_17unspecify_phase)) {
        __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(2, 58, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":60
 *     cpdef unspecify_phase(self):
 *         """ Unspecify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::unspecify_phase` """
 *         self.thisptr.unspecify_phase()             # <<<<<<<<<<<<<<
 * 
 *     cpdef change_EOS(self, size_t i, string EOS_name):
 */
  try {
    __pyx_v_self->thisptr->unspecify_phase();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 60, __pyx_L1_error)
  }

  /* "AbstractState.pyx":58
 *         """ Specify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::specify_phase` """
 *         self.thisptr.specify_phase(phase)
 *     cpdef unspecify_phase(self):             # <<<<<<<<<<<<<<
 *         """ Unspecify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::unspecify_phase` """
 *         self.thisptr.unspecify_phase()
 */

  /* 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("CoolProp.CoolProp.AbstractState.unspecify_phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_17unspecify_phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_16unspecify_phase[] = " Unspecify the phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::unspecify_phase` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_17unspecify_phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unspecify_phase (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_16unspecify_phase(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_16unspecify_phase(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("unspecify_phase", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_unspecify_phase(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 58, __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("CoolProp.CoolProp.AbstractState.unspecify_phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":62
 *         self.thisptr.unspecify_phase()
 * 
 *     cpdef change_EOS(self, size_t i, string EOS_name):             # <<<<<<<<<<<<<<
 *         """ Change the EOS for one component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::change_EOS` """
 *         self.thisptr.change_EOS(i, EOS_name)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_19change_EOS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_change_EOS(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_EOS_name, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("change_EOS", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_change_EOS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 62, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_19change_EOS)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 62, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_EOS_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 62, __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(2, 62, __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(2, 62, __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(2, 62, __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(2, 62, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":64
 *     cpdef change_EOS(self, size_t i, string EOS_name):
 *         """ Change the EOS for one component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::change_EOS` """
 *         self.thisptr.change_EOS(i, EOS_name)             # <<<<<<<<<<<<<<
 * 
 *     cpdef apply_simple_mixing_rule(self, size_t i, size_t j, string model):
 */
  try {
    __pyx_v_self->thisptr->change_EOS(__pyx_v_i, __pyx_v_EOS_name);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 64, __pyx_L1_error)
  }

  /* "AbstractState.pyx":62
 *         self.thisptr.unspecify_phase()
 * 
 *     cpdef change_EOS(self, size_t i, string EOS_name):             # <<<<<<<<<<<<<<
 *         """ Change the EOS for one component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::change_EOS` """
 *         self.thisptr.change_EOS(i, EOS_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_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.change_EOS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_19change_EOS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_18change_EOS[] = " Change the EOS for one component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::change_EOS` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_19change_EOS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_i;
  std::string __pyx_v_EOS_name;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("change_EOS (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_EOS_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_i)) != 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_EOS_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("change_EOS", 1, 2, 2, 1); __PYX_ERR(2, 62, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "change_EOS") < 0)) __PYX_ERR(2, 62, __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_i = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 62, __pyx_L3_error)
    __pyx_v_EOS_name = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 62, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("change_EOS", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 62, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.change_EOS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_18change_EOS(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_i, __pyx_v_EOS_name);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_18change_EOS(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_EOS_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("change_EOS", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_change_EOS(__pyx_v_self, __pyx_v_i, __pyx_v_EOS_name, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 62, __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("CoolProp.CoolProp.AbstractState.change_EOS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":66
 *         self.thisptr.change_EOS(i, EOS_name)
 * 
 *     cpdef apply_simple_mixing_rule(self, size_t i, size_t j, string model):             # <<<<<<<<<<<<<<
 *         """ Apply a simple mixing rule - wrapper of c++ function :cpapi:`CoolProp::AbstractState::apply_simple_mixing_rule` """
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_21apply_simple_mixing_rule(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_apply_simple_mixing_rule(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, size_t __pyx_v_j, std::string __pyx_v_model, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("apply_simple_mixing_rule", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_apply_simple_mixing_rule); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 66, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_21apply_simple_mixing_rule)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 66, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_j); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 66, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_model); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 66, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 66, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 66, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 66, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 66, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":68
 *     cpdef apply_simple_mixing_rule(self, size_t i, size_t j, string model):
 *         """ Apply a simple mixing rule - wrapper of c++ function :cpapi:`CoolProp::AbstractState::apply_simple_mixing_rule` """
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):
 */
  try {
    __pyx_v_self->thisptr->apply_simple_mixing_rule(__pyx_v_i, __pyx_v_j, __pyx_v_model);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 68, __pyx_L1_error)
  }

  /* "AbstractState.pyx":66
 *         self.thisptr.change_EOS(i, EOS_name)
 * 
 *     cpdef apply_simple_mixing_rule(self, size_t i, size_t j, string model):             # <<<<<<<<<<<<<<
 *         """ Apply a simple mixing rule - wrapper of c++ function :cpapi:`CoolProp::AbstractState::apply_simple_mixing_rule` """
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 */

  /* 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_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.apply_simple_mixing_rule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_21apply_simple_mixing_rule(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_20apply_simple_mixing_rule[] = " Apply a simple mixing rule - wrapper of c++ function :cpapi:`CoolProp::AbstractState::apply_simple_mixing_rule` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_21apply_simple_mixing_rule(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_i;
  size_t __pyx_v_j;
  std::string __pyx_v_model;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("apply_simple_mixing_rule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_j,&__pyx_n_s_model,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_i)) != 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_j)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("apply_simple_mixing_rule", 1, 3, 3, 1); __PYX_ERR(2, 66, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_model)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("apply_simple_mixing_rule", 1, 3, 3, 2); __PYX_ERR(2, 66, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "apply_simple_mixing_rule") < 0)) __PYX_ERR(2, 66, __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_i = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 66, __pyx_L3_error)
    __pyx_v_j = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_j == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 66, __pyx_L3_error)
    __pyx_v_model = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 66, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("apply_simple_mixing_rule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 66, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.apply_simple_mixing_rule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_20apply_simple_mixing_rule(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_i, __pyx_v_j, __pyx_v_model);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_20apply_simple_mixing_rule(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, size_t __pyx_v_j, std::string __pyx_v_model) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("apply_simple_mixing_rule", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_apply_simple_mixing_rule(__pyx_v_self, __pyx_v_i, __pyx_v_j, __pyx_v_model, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 66, __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("CoolProp.CoolProp.AbstractState.apply_simple_mixing_rule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double[] = " Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` ";
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double = {"set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,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_args)) != 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_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(2, 70, __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_args = values[0];
    __pyx_v_kwargs = values[1];
    __pyx_v_defaults = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_signatures), __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  __Pyx_RefNannySetupContext("set_binary_interaction_double", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(2, 70, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 70, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 70, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_CAS1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 70, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_CAS1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(2, 70, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 70, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_5);
    __Pyx_GIVEREF(__pyx_int_5);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_5);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 70, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_3 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_4 != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L12_bool_binop_done:;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 70, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyBytes_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_char, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 70, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyUnicode_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_unicode, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 70, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 70, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(((PyObject *)__pyx_v_signatures) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 70, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__4);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__5) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__5);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(2, 70, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L21;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L19_break;
        }
        __pyx_L21:;
      }
    }
    __pyx_L19_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(2, 70, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 70, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 70, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(((PyObject *)__pyx_v_signatures) == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 70, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 70, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_283__pyx_fuse_0set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_0set_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_0set_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_283__pyx_fuse_0set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyBytes_FromString(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":75
 *             self.thisptr.set_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_double(((std::string)__pyx_v_CAS1), ((std::string)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 75, __pyx_L1_error)
  }

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_283__pyx_fuse_0set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_283__pyx_fuse_0set_binary_interaction_double = {"__pyx_fuse_0set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_283__pyx_fuse_0set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_283__pyx_fuse_0set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_CAS1;
  char *__pyx_v_CAS2;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0set_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_double", 1, 4, 4, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_double", 1, 4, 4, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_double", 1, 4, 4, 3); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0set_binary_interaction_double") < 0)) __PYX_ERR(2, 70, __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_CAS1 = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_CAS1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_CAS2) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_double", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_0set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_282__pyx_fuse_0set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_282__pyx_fuse_0set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_0set_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_0set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_285__pyx_fuse_1set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  std::string __pyx_t_9;
  std::string __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_1set_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_1set_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_285__pyx_fuse_1set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 70, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __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(4+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__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(2, 70, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_7 = 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_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __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[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_INCREF(__pyx_v_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_7, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_7, __pyx_t_8);
          __pyx_t_5 = 0;
          __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":75
 *             self.thisptr.set_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 */
  __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 75, __pyx_L1_error)
  __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 75, __pyx_L1_error)
  try {
    __pyx_v_self->thisptr->set_binary_interaction_double(((std::string)__pyx_t_9), ((std::string)__pyx_t_10), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 75, __pyx_L1_error)
  }

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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("CoolProp.CoolProp.AbstractState.set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_285__pyx_fuse_1set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_285__pyx_fuse_1set_binary_interaction_double = {"__pyx_fuse_1set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_285__pyx_fuse_1set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_285__pyx_fuse_1set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1set_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_double", 1, 4, 4, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_double", 1, 4, 4, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_double", 1, 4, 4, 3); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1set_binary_interaction_double") < 0)) __PYX_ERR(2, 70, __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_CAS1 = ((PyObject*)values[0]);
    __pyx_v_CAS2 = ((PyObject*)values[1]);
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_double", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_1set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS1), (&PyBytes_Type), 1, "CAS1", 1))) __PYX_ERR(2, 70, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS2), (&PyBytes_Type), 1, "CAS2", 1))) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_284__pyx_fuse_1set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_284__pyx_fuse_1set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_1set_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_1set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_287__pyx_fuse_2set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  std::string __pyx_t_9;
  std::string __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_2set_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_2set_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_287__pyx_fuse_2set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 70, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __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(4+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__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(2, 70, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_7 = 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_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __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[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_INCREF(__pyx_v_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_7, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_7, __pyx_t_8);
          __pyx_t_5 = 0;
          __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":75
 *             self.thisptr.set_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 */
  __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 75, __pyx_L1_error)
  __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 75, __pyx_L1_error)
  try {
    __pyx_v_self->thisptr->set_binary_interaction_double(((std::string)__pyx_t_9), ((std::string)__pyx_t_10), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 75, __pyx_L1_error)
  }

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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("CoolProp.CoolProp.AbstractState.set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_287__pyx_fuse_2set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_287__pyx_fuse_2set_binary_interaction_double = {"__pyx_fuse_2set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_287__pyx_fuse_2set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_287__pyx_fuse_2set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2set_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_double", 1, 4, 4, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_double", 1, 4, 4, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_double", 1, 4, 4, 3); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_2set_binary_interaction_double") < 0)) __PYX_ERR(2, 70, __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_CAS1 = ((PyObject*)values[0]);
    __pyx_v_CAS2 = ((PyObject*)values[1]);
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_double", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_2set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS1), (&PyUnicode_Type), 1, "CAS1", 1))) __PYX_ERR(2, 70, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS2), (&PyUnicode_Type), 1, "CAS2", 1))) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_286__pyx_fuse_2set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_286__pyx_fuse_2set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_2set_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_2set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_289__pyx_fuse_3set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_3set_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_3set_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_289__pyx_fuse_3set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":75
 *             self.thisptr.set_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_double(((std::string)__pyx_v_CAS1), ((std::string)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 75, __pyx_L1_error)
  }

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_289__pyx_fuse_3set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_289__pyx_fuse_3set_binary_interaction_double = {"__pyx_fuse_3set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_289__pyx_fuse_3set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_289__pyx_fuse_3set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_CAS1;
  std::string __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3set_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_double", 1, 4, 4, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_double", 1, 4, 4, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_double", 1, 4, 4, 3); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_3set_binary_interaction_double") < 0)) __PYX_ERR(2, 70, __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_CAS1 = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_CAS2 = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_double", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_3set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_288__pyx_fuse_3set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_288__pyx_fuse_3set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_3set_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_3set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_291__pyx_fuse_4set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_4set_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_4set_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_291__pyx_fuse_4set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_short(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_short(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyInt_From_short(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyInt_From_short(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":73
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 *             self.thisptr.set_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_double(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 73, __pyx_L1_error)
  }

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_291__pyx_fuse_4set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_291__pyx_fuse_4set_binary_interaction_double = {"__pyx_fuse_4set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_291__pyx_fuse_4set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_291__pyx_fuse_4set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  short __pyx_v_CAS1;
  short __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4set_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_double", 1, 4, 4, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_double", 1, 4, 4, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_double", 1, 4, 4, 3); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_4set_binary_interaction_double") < 0)) __PYX_ERR(2, 70, __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_CAS1 = __Pyx_PyInt_As_short(values[0]); if (unlikely((__pyx_v_CAS1 == (short)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_short(values[1]); if (unlikely((__pyx_v_CAS2 == (short)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_double", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_4set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_290__pyx_fuse_4set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_290__pyx_fuse_4set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_4set_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_4set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_293__pyx_fuse_5set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_5set_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_5set_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_293__pyx_fuse_5set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":73
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 *             self.thisptr.set_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_double(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 73, __pyx_L1_error)
  }

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_293__pyx_fuse_5set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_293__pyx_fuse_5set_binary_interaction_double = {"__pyx_fuse_5set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_293__pyx_fuse_5set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_293__pyx_fuse_5set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_CAS1;
  int __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5set_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_double", 1, 4, 4, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_double", 1, 4, 4, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_double", 1, 4, 4, 3); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_5set_binary_interaction_double") < 0)) __PYX_ERR(2, 70, __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_CAS1 = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_CAS1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_CAS2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_double", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_5set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_292__pyx_fuse_5set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_292__pyx_fuse_5set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_5set_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_5set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_295__pyx_fuse_6set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_6set_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_6set_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_295__pyx_fuse_6set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyInt_From_long(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 70, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":73
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 *             self.thisptr.set_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_double(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 73, __pyx_L1_error)
  }

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_295__pyx_fuse_6set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_295__pyx_fuse_6set_binary_interaction_double = {"__pyx_fuse_6set_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_295__pyx_fuse_6set_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_22set_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_295__pyx_fuse_6set_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_CAS1;
  long __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6set_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_double", 1, 4, 4, 1); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_double", 1, 4, 4, 2); __PYX_ERR(2, 70, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_double", 1, 4, 4, 3); __PYX_ERR(2, 70, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_6set_binary_interaction_double") < 0)) __PYX_ERR(2, 70, __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_CAS1 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_CAS1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_CAS2 == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 70, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_double", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 70, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_6set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_294__pyx_fuse_6set_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_294__pyx_fuse_6set_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_6set_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_6set_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double[] = " Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` ";
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double = {"get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,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_args)) != 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_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(2, 76, __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_args = values[0];
    __pyx_v_kwargs = values[1];
    __pyx_v_defaults = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_signatures), __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  __Pyx_RefNannySetupContext("get_binary_interaction_double", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(2, 76, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 76, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 76, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_CAS1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 76, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_CAS1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(2, 76, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 76, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 76, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_3 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_4 != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L12_bool_binop_done:;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 76, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyBytes_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_char, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 76, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyUnicode_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_unicode, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 76, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 76, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(((PyObject *)__pyx_v_signatures) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 76, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__4);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__5) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__5);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(2, 76, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L21;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L19_break;
        }
        __pyx_L21:;
      }
    }
    __pyx_L19_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(2, 76, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 76, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 76, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(((PyObject *)__pyx_v_signatures) == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 76, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_299__pyx_fuse_0get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_0get_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_0get_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_299__pyx_fuse_0get_binary_interaction_double)) {
        __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double)) {
        __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_CAS1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __Pyx_PyBytes_FromString(__pyx_v_CAS2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_8 = 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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_6 = 0;
          __pyx_t_9 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":81
 *             return self.thisptr.get_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter)
 *         else:
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->get_binary_interaction_double(((std::string)__pyx_v_CAS1), ((std::string)__pyx_v_CAS2), __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 81, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_299__pyx_fuse_0get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_299__pyx_fuse_0get_binary_interaction_double = {"__pyx_fuse_0get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_299__pyx_fuse_0get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_299__pyx_fuse_0get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_CAS1;
  char *__pyx_v_CAS2;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0get_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0get_binary_interaction_double", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0get_binary_interaction_double", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0get_binary_interaction_double") < 0)) __PYX_ERR(2, 76, __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_CAS1 = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_CAS1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_CAS2) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0get_binary_interaction_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_0get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_298__pyx_fuse_0get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_298__pyx_fuse_0get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_0get_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_0get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_301__pyx_fuse_1get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_8;
  std::string __pyx_t_9;
  std::string __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_1get_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_1get_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_301__pyx_fuse_1get_binary_interaction_double)) {
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __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[4] = {__pyx_t_5, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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[4] = {__pyx_t_5, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 76, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_3);
          __pyx_t_3 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_8;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double)) {
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_t_4);
          __pyx_t_4 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_8;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":81
 *             return self.thisptr.get_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter)
 *         else:
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):
 */
  __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 81, __pyx_L1_error)
  __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 81, __pyx_L1_error)
  try {
    __pyx_t_8 = __pyx_v_self->thisptr->get_binary_interaction_double(((std::string)__pyx_t_9), ((std::string)__pyx_t_10), __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 81, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_8;
  goto __pyx_L0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_7);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_301__pyx_fuse_1get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_301__pyx_fuse_1get_binary_interaction_double = {"__pyx_fuse_1get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_301__pyx_fuse_1get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_301__pyx_fuse_1get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1get_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1get_binary_interaction_double", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1get_binary_interaction_double", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1get_binary_interaction_double") < 0)) __PYX_ERR(2, 76, __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_CAS1 = ((PyObject*)values[0]);
    __pyx_v_CAS2 = ((PyObject*)values[1]);
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1get_binary_interaction_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_1get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS1), (&PyBytes_Type), 1, "CAS1", 1))) __PYX_ERR(2, 76, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS2), (&PyBytes_Type), 1, "CAS2", 1))) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_300__pyx_fuse_1get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_300__pyx_fuse_1get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_1get_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_1get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_303__pyx_fuse_2get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_8;
  std::string __pyx_t_9;
  std::string __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_2get_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_2get_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_303__pyx_fuse_2get_binary_interaction_double)) {
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __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[4] = {__pyx_t_5, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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[4] = {__pyx_t_5, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 76, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_3);
          __pyx_t_3 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_8;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double)) {
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_t_4);
          __pyx_t_4 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_8;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":81
 *             return self.thisptr.get_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter)
 *         else:
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):
 */
  __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 81, __pyx_L1_error)
  __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 81, __pyx_L1_error)
  try {
    __pyx_t_8 = __pyx_v_self->thisptr->get_binary_interaction_double(((std::string)__pyx_t_9), ((std::string)__pyx_t_10), __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 81, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_8;
  goto __pyx_L0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_7);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_303__pyx_fuse_2get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_303__pyx_fuse_2get_binary_interaction_double = {"__pyx_fuse_2get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_303__pyx_fuse_2get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_303__pyx_fuse_2get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2get_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2get_binary_interaction_double", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2get_binary_interaction_double", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_2get_binary_interaction_double") < 0)) __PYX_ERR(2, 76, __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_CAS1 = ((PyObject*)values[0]);
    __pyx_v_CAS2 = ((PyObject*)values[1]);
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2get_binary_interaction_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_2get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS1), (&PyUnicode_Type), 1, "CAS1", 1))) __PYX_ERR(2, 76, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS2), (&PyUnicode_Type), 1, "CAS2", 1))) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_302__pyx_fuse_2get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_302__pyx_fuse_2get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_2get_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_2get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_305__pyx_fuse_3get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_3get_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_3get_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_305__pyx_fuse_3get_binary_interaction_double)) {
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double)) {
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_8 = 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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_6 = 0;
          __pyx_t_9 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":81
 *             return self.thisptr.get_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter)
 *         else:
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->get_binary_interaction_double(((std::string)__pyx_v_CAS1), ((std::string)__pyx_v_CAS2), __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 81, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_305__pyx_fuse_3get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_305__pyx_fuse_3get_binary_interaction_double = {"__pyx_fuse_3get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_305__pyx_fuse_3get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_305__pyx_fuse_3get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_CAS1;
  std::string __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3get_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3get_binary_interaction_double", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3get_binary_interaction_double", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_3get_binary_interaction_double") < 0)) __PYX_ERR(2, 76, __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_CAS1 = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_CAS2 = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3get_binary_interaction_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_3get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_304__pyx_fuse_3get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_304__pyx_fuse_3get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_3get_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_3get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_307__pyx_fuse_4get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_4get_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_4get_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_307__pyx_fuse_4get_binary_interaction_double)) {
        __pyx_t_3 = __Pyx_PyInt_From_short(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_short(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double)) {
        __pyx_t_6 = __Pyx_PyInt_From_short(__pyx_v_CAS1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __Pyx_PyInt_From_short(__pyx_v_CAS2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_8 = 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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_6 = 0;
          __pyx_t_9 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":79
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 *             return self.thisptr.get_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter)             # <<<<<<<<<<<<<<
 *         else:
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->get_binary_interaction_double(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 79, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_307__pyx_fuse_4get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_307__pyx_fuse_4get_binary_interaction_double = {"__pyx_fuse_4get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_307__pyx_fuse_4get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_307__pyx_fuse_4get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  short __pyx_v_CAS1;
  short __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4get_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4get_binary_interaction_double", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4get_binary_interaction_double", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_4get_binary_interaction_double") < 0)) __PYX_ERR(2, 76, __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_CAS1 = __Pyx_PyInt_As_short(values[0]); if (unlikely((__pyx_v_CAS1 == (short)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_short(values[1]); if (unlikely((__pyx_v_CAS2 == (short)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4get_binary_interaction_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_4get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_306__pyx_fuse_4get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_306__pyx_fuse_4get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_4get_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_4get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_309__pyx_fuse_5get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_5get_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_5get_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_309__pyx_fuse_5get_binary_interaction_double)) {
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double)) {
        __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_CAS1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_CAS2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_8 = 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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_6 = 0;
          __pyx_t_9 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":79
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 *             return self.thisptr.get_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter)             # <<<<<<<<<<<<<<
 *         else:
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->get_binary_interaction_double(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 79, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_309__pyx_fuse_5get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_309__pyx_fuse_5get_binary_interaction_double = {"__pyx_fuse_5get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_309__pyx_fuse_5get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_309__pyx_fuse_5get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_CAS1;
  int __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5get_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5get_binary_interaction_double", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5get_binary_interaction_double", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_5get_binary_interaction_double") < 0)) __PYX_ERR(2, 76, __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_CAS1 = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_CAS1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_CAS2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5get_binary_interaction_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_5get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_308__pyx_fuse_5get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_308__pyx_fuse_5get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_5get_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_5get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_311__pyx_fuse_6get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_6get_binary_interaction_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_6get_binary_interacti); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_311__pyx_fuse_6get_binary_interaction_double)) {
        __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 76, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double)) {
        __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_CAS1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __Pyx_PyInt_From_long(__pyx_v_CAS2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_8 = 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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_6, __pyx_t_9, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 76, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_6 = 0;
          __pyx_t_9 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __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_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":79
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 *             return self.thisptr.get_binary_interaction_double(<size_t>CAS1, <size_t>CAS2, parameter)             # <<<<<<<<<<<<<<
 *         else:
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->get_binary_interaction_double(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 79, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_311__pyx_fuse_6get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_311__pyx_fuse_6get_binary_interaction_double = {"__pyx_fuse_6get_binary_interaction_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_311__pyx_fuse_6get_binary_interaction_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_24get_binary_interaction_double};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_311__pyx_fuse_6get_binary_interaction_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_CAS1;
  long __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6get_binary_interaction_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6get_binary_interaction_double", 1, 3, 3, 1); __PYX_ERR(2, 76, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6get_binary_interaction_double", 1, 3, 3, 2); __PYX_ERR(2, 76, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_6get_binary_interaction_double") < 0)) __PYX_ERR(2, 76, __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_CAS1 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_CAS1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_CAS2 == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6get_binary_interaction_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 76, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_6get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_310__pyx_fuse_6get_binary_interaction_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_310__pyx_fuse_6get_binary_interaction_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_6get_binary_interaction_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 76, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_6get_binary_interaction_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string[] = " Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` ";
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string = {"set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,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_args)) != 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_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(2, 83, __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_args = values[0];
    __pyx_v_kwargs = values[1];
    __pyx_v_defaults = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_signatures), __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  __Pyx_RefNannySetupContext("set_binary_interaction_string", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 83, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(2, 83, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 83, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 83, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 83, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_CAS1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 83, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 83, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_CAS1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(2, 83, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 83, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_5);
    __Pyx_GIVEREF(__pyx_int_5);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_5);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 83, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_3 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_3 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_2 = __pyx_t_4;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_4 != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L12_bool_binop_done:;
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 83, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyBytes_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_char, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 83, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyUnicode_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_unicode, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 83, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(2, 83, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(((PyObject *)__pyx_v_signatures) == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 83, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__4);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__5) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__5);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(2, 83, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L21;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L19_break;
        }
        __pyx_L21:;
      }
    }
    __pyx_L19_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(2, 83, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 83, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 83, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(2, 83, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(((PyObject *)__pyx_v_signatures) == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 83, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_315__pyx_fuse_0set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_0set_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_0set_binary_interacti_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_315__pyx_fuse_0set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyBytes_FromString(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyBytes_FromString(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":88
 *             self.thisptr.set_binary_interaction_string(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 * 
 *     cpdef string get_binary_interaction_string(self, string CAS1, string CAS2, string parameter) except *:
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_string(((std::string)__pyx_v_CAS1), ((std::string)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 88, __pyx_L1_error)
  }

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_315__pyx_fuse_0set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_315__pyx_fuse_0set_binary_interaction_string = {"__pyx_fuse_0set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_315__pyx_fuse_0set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_315__pyx_fuse_0set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  char *__pyx_v_CAS1;
  char *__pyx_v_CAS2;
  std::string __pyx_v_parameter;
  std::string __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0set_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_string", 1, 4, 4, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_string", 1, 4, 4, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_string", 1, 4, 4, 3); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0set_binary_interaction_string") < 0)) __PYX_ERR(2, 83, __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_CAS1 = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_CAS1) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyObject_AsWritableString(values[1]); if (unlikely((!__pyx_v_CAS2) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_val = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0set_binary_interaction_string", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_0set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_314__pyx_fuse_0set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_314__pyx_fuse_0set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, char *__pyx_v_CAS1, char *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_0set_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_0set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_317__pyx_fuse_1set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  std::string __pyx_t_9;
  std::string __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_1set_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_1set_binary_interacti_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_317__pyx_fuse_1set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 83, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __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(4+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__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(2, 83, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_7 = 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_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __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[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_INCREF(__pyx_v_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_7, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_7, __pyx_t_8);
          __pyx_t_5 = 0;
          __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":88
 *             self.thisptr.set_binary_interaction_string(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 * 
 *     cpdef string get_binary_interaction_string(self, string CAS1, string CAS2, string parameter) except *:
 */
  __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 88, __pyx_L1_error)
  __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 88, __pyx_L1_error)
  try {
    __pyx_v_self->thisptr->set_binary_interaction_string(((std::string)__pyx_t_9), ((std::string)__pyx_t_10), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 88, __pyx_L1_error)
  }

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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("CoolProp.CoolProp.AbstractState.set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_317__pyx_fuse_1set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_317__pyx_fuse_1set_binary_interaction_string = {"__pyx_fuse_1set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_317__pyx_fuse_1set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_317__pyx_fuse_1set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  std::string __pyx_v_parameter;
  std::string __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1set_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_string", 1, 4, 4, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_string", 1, 4, 4, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_string", 1, 4, 4, 3); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1set_binary_interaction_string") < 0)) __PYX_ERR(2, 83, __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_CAS1 = ((PyObject*)values[0]);
    __pyx_v_CAS2 = ((PyObject*)values[1]);
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_val = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1set_binary_interaction_string", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_1set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS1), (&PyBytes_Type), 1, "CAS1", 1))) __PYX_ERR(2, 83, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS2), (&PyBytes_Type), 1, "CAS2", 1))) __PYX_ERR(2, 83, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_316__pyx_fuse_1set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_316__pyx_fuse_1set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_1set_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_1set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_319__pyx_fuse_2set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  std::string __pyx_t_9;
  std::string __pyx_t_10;
  __Pyx_RefNannySetupContext("__pyx_fuse_2set_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_2set_binary_interacti_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_319__pyx_fuse_2set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 83, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __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[5] = {__pyx_t_6, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __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(4+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __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_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__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(2, 83, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_7 = 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_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __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[5] = {__pyx_t_3, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_t_5, __pyx_t_8};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_INCREF(__pyx_v_CAS1);
          __Pyx_GIVEREF(__pyx_v_CAS1);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_CAS1);
          __Pyx_INCREF(__pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_v_CAS2);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_CAS2);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_7, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_7, __pyx_t_8);
          __pyx_t_5 = 0;
          __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":88
 *             self.thisptr.set_binary_interaction_string(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 * 
 *     cpdef string get_binary_interaction_string(self, string CAS1, string CAS2, string parameter) except *:
 */
  __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 88, __pyx_L1_error)
  __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 88, __pyx_L1_error)
  try {
    __pyx_v_self->thisptr->set_binary_interaction_string(((std::string)__pyx_t_9), ((std::string)__pyx_t_10), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 88, __pyx_L1_error)
  }

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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("CoolProp.CoolProp.AbstractState.set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_319__pyx_fuse_2set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_319__pyx_fuse_2set_binary_interaction_string = {"__pyx_fuse_2set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_319__pyx_fuse_2set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_319__pyx_fuse_2set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  std::string __pyx_v_parameter;
  std::string __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2set_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_string", 1, 4, 4, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_string", 1, 4, 4, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_string", 1, 4, 4, 3); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_2set_binary_interaction_string") < 0)) __PYX_ERR(2, 83, __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_CAS1 = ((PyObject*)values[0]);
    __pyx_v_CAS2 = ((PyObject*)values[1]);
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_val = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2set_binary_interaction_string", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_2set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS1), (&PyUnicode_Type), 1, "CAS1", 1))) __PYX_ERR(2, 83, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_CAS2), (&PyUnicode_Type), 1, "CAS2", 1))) __PYX_ERR(2, 83, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_318__pyx_fuse_2set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_318__pyx_fuse_2set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_2set_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_2set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_321__pyx_fuse_3set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_3set_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_3set_binary_interacti_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_321__pyx_fuse_3set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":88
 *             self.thisptr.set_binary_interaction_string(<size_t>CAS1, <size_t>CAS2, parameter, val)
 *         else:
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 * 
 *     cpdef string get_binary_interaction_string(self, string CAS1, string CAS2, string parameter) except *:
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_string(((std::string)__pyx_v_CAS1), ((std::string)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 88, __pyx_L1_error)
  }

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_321__pyx_fuse_3set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_321__pyx_fuse_3set_binary_interaction_string = {"__pyx_fuse_3set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_321__pyx_fuse_3set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_321__pyx_fuse_3set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_CAS1;
  std::string __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  std::string __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3set_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_string", 1, 4, 4, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_string", 1, 4, 4, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_string", 1, 4, 4, 3); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_3set_binary_interaction_string") < 0)) __PYX_ERR(2, 83, __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_CAS1 = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_CAS2 = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_val = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3set_binary_interaction_string", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_3set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_320__pyx_fuse_3set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_320__pyx_fuse_3set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_3set_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_3set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_323__pyx_fuse_4set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_4set_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_4set_binary_interacti_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_323__pyx_fuse_4set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_short(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_short(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyInt_From_short(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyInt_From_short(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":86
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 *             self.thisptr.set_binary_interaction_string(<size_t>CAS1, <size_t>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *         else:
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_string(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 86, __pyx_L1_error)
  }

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_323__pyx_fuse_4set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_323__pyx_fuse_4set_binary_interaction_string = {"__pyx_fuse_4set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_323__pyx_fuse_4set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_323__pyx_fuse_4set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  short __pyx_v_CAS1;
  short __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  std::string __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4set_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_string", 1, 4, 4, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_string", 1, 4, 4, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_string", 1, 4, 4, 3); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_4set_binary_interaction_string") < 0)) __PYX_ERR(2, 83, __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_CAS1 = __Pyx_PyInt_As_short(values[0]); if (unlikely((__pyx_v_CAS1 == (short)-1) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_short(values[1]); if (unlikely((__pyx_v_CAS2 == (short)-1) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_val = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_4set_binary_interaction_string", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_4set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_322__pyx_fuse_4set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_322__pyx_fuse_4set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, short __pyx_v_CAS1, short __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_4set_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_4set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_325__pyx_fuse_5set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_5set_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_5set_binary_interacti_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_325__pyx_fuse_5set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":86
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 *             self.thisptr.set_binary_interaction_string(<size_t>CAS1, <size_t>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *         else:
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_string(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 86, __pyx_L1_error)
  }

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_325__pyx_fuse_5set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_325__pyx_fuse_5set_binary_interaction_string = {"__pyx_fuse_5set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_325__pyx_fuse_5set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_325__pyx_fuse_5set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_CAS1;
  int __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  std::string __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5set_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_string", 1, 4, 4, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_string", 1, 4, 4, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_string", 1, 4, 4, 3); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_5set_binary_interaction_string") < 0)) __PYX_ERR(2, 83, __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_CAS1 = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_CAS1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_CAS2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_val = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_5set_binary_interaction_string", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_5set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_324__pyx_fuse_5set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_324__pyx_fuse_5set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_CAS1, int __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_5set_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_5set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_327__pyx_fuse_6set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string(PyObject *__pyx_v_signatures, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_6set_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pyx_fuse_6set_binary_interacti_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_327__pyx_fuse_6set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_v_CAS1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyInt_From_long(__pyx_v_CAS2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 83, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_3 = NULL;
        __pyx_t_9 = 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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_7, __pyx_t_10, __pyx_t_6, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_9, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_9, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_9, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_9, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_10 = 0;
          __pyx_t_6 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 83, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":86
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 *             self.thisptr.set_binary_interaction_string(<size_t>CAS1, <size_t>CAS2, parameter, val)             # <<<<<<<<<<<<<<
 *         else:
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)
 */
  try {
    __pyx_v_self->thisptr->set_binary_interaction_string(((size_t)__pyx_v_CAS1), ((size_t)__pyx_v_CAS2), __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 86, __pyx_L1_error)
  }

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_327__pyx_fuse_6set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_327__pyx_fuse_6set_binary_interaction_string = {"__pyx_fuse_6set_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_327__pyx_fuse_6set_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_26set_binary_interaction_string};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_327__pyx_fuse_6set_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_CAS1;
  long __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  std::string __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6set_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_string", 1, 4, 4, 1); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_string", 1, 4, 4, 2); __PYX_ERR(2, 83, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_string", 1, 4, 4, 3); __PYX_ERR(2, 83, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_6set_binary_interaction_string") < 0)) __PYX_ERR(2, 83, __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_CAS1 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_CAS1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_CAS2 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_CAS2 == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
    __pyx_v_val = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 83, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_6set_binary_interaction_string", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 83, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.__pyx_fuse_6set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_326__pyx_fuse_6set_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_326__pyx_fuse_6set_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, long __pyx_v_CAS1, long __pyx_v_CAS2, std::string __pyx_v_parameter, std::string __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_fuse_6set_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 83, __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("CoolProp.CoolProp.AbstractState.__pyx_fuse_6set_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":90
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)
 * 
 *     cpdef string get_binary_interaction_string(self, string CAS1, string CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_string` """
 *         return self.thisptr.get_binary_interaction_string(CAS1, CAS2, parameter)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_29get_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  std::string __pyx_t_10;
  __Pyx_RefNannySetupContext("get_binary_interaction_string", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_binary_interaction_string); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 90, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_29get_binary_interaction_string)) {
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 90, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_CAS2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 90, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 90, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 90, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 90, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 90, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 90, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_convert_string_from_py_std__in_string(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 90, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":92
 *     cpdef string get_binary_interaction_string(self, string CAS1, string CAS2, string parameter) except *:
 *         """ Get a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_string` """
 *         return self.thisptr.get_binary_interaction_string(CAS1, CAS2, parameter)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_fluid_parameter_double(self, size_t i, string parameter, double val):
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->get_binary_interaction_string(__pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 92, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":90
 *             self.thisptr.set_binary_interaction_string(<string>CAS1, <string>CAS2, parameter, val)
 * 
 *     cpdef string get_binary_interaction_string(self, string CAS1, string CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_string` """
 *         return self.thisptr.get_binary_interaction_string(CAS1, CAS2, parameter)
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_29get_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_28get_binary_interaction_string[] = " Get a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_string` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_29get_binary_interaction_string(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_CAS1;
  std::string __pyx_v_CAS2;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_binary_interaction_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_parameter,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_binary_interaction_string", 1, 3, 3, 1); __PYX_ERR(2, 90, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_binary_interaction_string", 1, 3, 3, 2); __PYX_ERR(2, 90, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_binary_interaction_string") < 0)) __PYX_ERR(2, 90, __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_CAS1 = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 90, __pyx_L3_error)
    __pyx_v_CAS2 = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 90, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 90, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_binary_interaction_string", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 90, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_28get_binary_interaction_string(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_28get_binary_interaction_string(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_CAS1, std::string __pyx_v_CAS2, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_binary_interaction_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_string(__pyx_v_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 90, __pyx_L1_error)
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_binary_interaction_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":94
 *         return self.thisptr.get_binary_interaction_string(CAS1, CAS2, parameter)
 * 
 *     cpdef set_fluid_parameter_double(self, size_t i, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_fluid_parameter_double` """
 *         self.thisptr.set_fluid_parameter_double(i, parameter, val)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_31set_fluid_parameter_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter, double __pyx_v_val, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("set_fluid_parameter_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_fluid_parameter_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 94, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_31set_fluid_parameter_double)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 94, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 94, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 94, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 94, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 94, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 94, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":96
 *     cpdef set_fluid_parameter_double(self, size_t i, string parameter, double val):
 *         """ Set a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_fluid_parameter_double` """
 *         self.thisptr.set_fluid_parameter_double(i, parameter, val)             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_fluid_parameter_double(self, size_t i, string parameter) except *:
 */
  try {
    __pyx_v_self->thisptr->set_fluid_parameter_double(__pyx_v_i, __pyx_v_parameter, __pyx_v_val);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 96, __pyx_L1_error)
  }

  /* "AbstractState.pyx":94
 *         return self.thisptr.get_binary_interaction_string(CAS1, CAS2, parameter)
 * 
 *     cpdef set_fluid_parameter_double(self, size_t i, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_fluid_parameter_double` """
 *         self.thisptr.set_fluid_parameter_double(i, parameter, val)
 */

  /* 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_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_fluid_parameter_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_31set_fluid_parameter_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_30set_fluid_parameter_double[] = " Set a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_fluid_parameter_double` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_31set_fluid_parameter_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_i;
  std::string __pyx_v_parameter;
  double __pyx_v_val;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_fluid_parameter_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_parameter,&__pyx_n_s_val,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_i)) != 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_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_fluid_parameter_double", 1, 3, 3, 1); __PYX_ERR(2, 94, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_fluid_parameter_double", 1, 3, 3, 2); __PYX_ERR(2, 94, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_fluid_parameter_double") < 0)) __PYX_ERR(2, 94, __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_i = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 94, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 94, __pyx_L3_error)
    __pyx_v_val = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 94, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_fluid_parameter_double", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 94, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_fluid_parameter_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_30set_fluid_parameter_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_i, __pyx_v_parameter, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_30set_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_fluid_parameter_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_set_fluid_parameter_double(__pyx_v_self, __pyx_v_i, __pyx_v_parameter, __pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 94, __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("CoolProp.CoolProp.AbstractState.set_fluid_parameter_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":98
 *         self.thisptr.set_fluid_parameter_double(i, parameter, val)
 * 
 *     cpdef double get_fluid_parameter_double(self, size_t i, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_fluid_parameter_double` """
 *         return self.thisptr.get_fluid_parameter_double(i, parameter)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_33get_fluid_parameter_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_9;
  __Pyx_RefNannySetupContext("get_fluid_parameter_double", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_fluid_parameter_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 98, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_33get_fluid_parameter_double)) {
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 98, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_parameter); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 98, __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(2, 98, __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(2, 98, __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(2, 98, __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(2, 98, __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_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 98, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_9;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":100
 *     cpdef double get_fluid_parameter_double(self, size_t i, string parameter) except *:
 *         """ Get a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_fluid_parameter_double` """
 *         return self.thisptr.get_fluid_parameter_double(i, parameter)             # <<<<<<<<<<<<<<
 * 
 *     cpdef update(self, constants_header.input_pairs ipair, double Value1, double Value2):
 */
  try {
    __pyx_t_9 = __pyx_v_self->thisptr->get_fluid_parameter_double(__pyx_v_i, __pyx_v_parameter);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 100, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_9;
  goto __pyx_L0;

  /* "AbstractState.pyx":98
 *         self.thisptr.set_fluid_parameter_double(i, parameter, val)
 * 
 *     cpdef double get_fluid_parameter_double(self, size_t i, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_fluid_parameter_double` """
 *         return self.thisptr.get_fluid_parameter_double(i, parameter)
 */

  /* 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("CoolProp.CoolProp.AbstractState.get_fluid_parameter_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_33get_fluid_parameter_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_32get_fluid_parameter_double[] = " Get a fluid parameter that is a double-precision number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_fluid_parameter_double` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_33get_fluid_parameter_double(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_i;
  std::string __pyx_v_parameter;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_fluid_parameter_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_parameter,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_i)) != 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_parameter)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_fluid_parameter_double", 1, 2, 2, 1); __PYX_ERR(2, 98, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_fluid_parameter_double") < 0)) __PYX_ERR(2, 98, __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_i = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 98, __pyx_L3_error)
    __pyx_v_parameter = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 98, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_fluid_parameter_double", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 98, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_fluid_parameter_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_32get_fluid_parameter_double(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_i, __pyx_v_parameter);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_32get_fluid_parameter_double(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, std::string __pyx_v_parameter) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_fluid_parameter_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_parameter_double(__pyx_v_self, __pyx_v_i, __pyx_v_parameter, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 98, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_fluid_parameter_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":102
 *         return self.thisptr.get_fluid_parameter_double(i, parameter)
 * 
 *     cpdef update(self, constants_header.input_pairs ipair, double Value1, double Value2):             # <<<<<<<<<<<<<<
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         self.thisptr.update(ipair, Value1, Value2)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_35update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_update(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("update", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 102, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_35update)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_input_pairs(__pyx_v_ipair); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_Value1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_Value2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 102, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 102, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":104
 *     cpdef update(self, constants_header.input_pairs ipair, double Value1, double Value2):
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         self.thisptr.update(ipair, Value1, Value2)             # <<<<<<<<<<<<<<
 *     cpdef update_with_guesses(self, constants_header.input_pairs ipair, double Value1, double Value2, PyGuessesStructure guesses):
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 */
  try {
    __pyx_v_self->thisptr->update(__pyx_v_ipair, __pyx_v_Value1, __pyx_v_Value2);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 104, __pyx_L1_error)
  }

  /* "AbstractState.pyx":102
 *         return self.thisptr.get_fluid_parameter_double(i, parameter)
 * 
 *     cpdef update(self, constants_header.input_pairs ipair, double Value1, double Value2):             # <<<<<<<<<<<<<<
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         self.thisptr.update(ipair, Value1, Value2)
 */

  /* 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_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_35update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_34update[] = " Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_35update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::input_pairs __pyx_v_ipair;
  double __pyx_v_Value1;
  double __pyx_v_Value2;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ipair,&__pyx_n_s_Value1,&__pyx_n_s_Value2,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_ipair)) != 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_Value1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, 1); __PYX_ERR(2, 102, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Value2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, 2); __PYX_ERR(2, 102, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update") < 0)) __PYX_ERR(2, 102, __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_ipair = ((CoolProp::input_pairs)__Pyx_PyInt_As_CoolProp_3a__3a_input_pairs(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 102, __pyx_L3_error)
    __pyx_v_Value1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Value1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 102, __pyx_L3_error)
    __pyx_v_Value2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Value2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 102, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 102, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_34update(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_ipair, __pyx_v_Value1, __pyx_v_Value2);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_34update(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("update", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_update(__pyx_v_self, __pyx_v_ipair, __pyx_v_Value1, __pyx_v_Value2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 102, __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("CoolProp.CoolProp.AbstractState.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":105
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         self.thisptr.update(ipair, Value1, Value2)
 *     cpdef update_with_guesses(self, constants_header.input_pairs ipair, double Value1, double Value2, PyGuessesStructure guesses):             # <<<<<<<<<<<<<<
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         cdef cAbstractState.GuessesStructure _guesses
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_37update_with_guesses(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_update_with_guesses(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2, struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_guesses, int __pyx_skip_dispatch) {
  CoolProp::GuessesStructure __pyx_v__guesses;
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  std::vector<double>  __pyx_t_11;
  __Pyx_RefNannySetupContext("update_with_guesses", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_with_guesses); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 105, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_37update_with_guesses)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_input_pairs(__pyx_v_ipair); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 105, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_Value1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 105, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_Value2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 105, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_guesses)};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 105, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_guesses)};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 105, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 105, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __Pyx_INCREF(((PyObject *)__pyx_v_guesses));
          __Pyx_GIVEREF(((PyObject *)__pyx_v_guesses));
          PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, ((PyObject *)__pyx_v_guesses));
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 105, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":108
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         cdef cAbstractState.GuessesStructure _guesses
 *         _guesses.T = guesses.T             # <<<<<<<<<<<<<<
 *         _guesses.p = guesses.p
 *         _guesses.rhomolar = guesses.rhomolar
 */
  __pyx_t_10 = __pyx_v_guesses->T;
  __pyx_v__guesses.T = __pyx_t_10;

  /* "AbstractState.pyx":109
 *         cdef cAbstractState.GuessesStructure _guesses
 *         _guesses.T = guesses.T
 *         _guesses.p = guesses.p             # <<<<<<<<<<<<<<
 *         _guesses.rhomolar = guesses.rhomolar
 *         _guesses.rhomolar_liq = guesses.rhomolar_liq
 */
  __pyx_t_10 = __pyx_v_guesses->p;
  __pyx_v__guesses.p = __pyx_t_10;

  /* "AbstractState.pyx":110
 *         _guesses.T = guesses.T
 *         _guesses.p = guesses.p
 *         _guesses.rhomolar = guesses.rhomolar             # <<<<<<<<<<<<<<
 *         _guesses.rhomolar_liq = guesses.rhomolar_liq
 *         _guesses.rhomolar_vap = guesses.rhomolar_vap
 */
  __pyx_t_10 = __pyx_v_guesses->rhomolar;
  __pyx_v__guesses.rhomolar = __pyx_t_10;

  /* "AbstractState.pyx":111
 *         _guesses.p = guesses.p
 *         _guesses.rhomolar = guesses.rhomolar
 *         _guesses.rhomolar_liq = guesses.rhomolar_liq             # <<<<<<<<<<<<<<
 *         _guesses.rhomolar_vap = guesses.rhomolar_vap
 *         _guesses.x = guesses.x
 */
  __pyx_t_10 = __pyx_v_guesses->rhomolar_liq;
  __pyx_v__guesses.rhomolar_liq = __pyx_t_10;

  /* "AbstractState.pyx":112
 *         _guesses.rhomolar = guesses.rhomolar
 *         _guesses.rhomolar_liq = guesses.rhomolar_liq
 *         _guesses.rhomolar_vap = guesses.rhomolar_vap             # <<<<<<<<<<<<<<
 *         _guesses.x = guesses.x
 *         _guesses.y = guesses.y
 */
  __pyx_t_10 = __pyx_v_guesses->rhomolar_vap;
  __pyx_v__guesses.rhomolar_vap = __pyx_t_10;

  /* "AbstractState.pyx":113
 *         _guesses.rhomolar_liq = guesses.rhomolar_liq
 *         _guesses.rhomolar_vap = guesses.rhomolar_vap
 *         _guesses.x = guesses.x             # <<<<<<<<<<<<<<
 *         _guesses.y = guesses.y
 *         self.thisptr.update_with_guesses(ipair, Value1, Value2, _guesses)
 */
  __pyx_t_11 = __pyx_convert_vector_from_py_double(__pyx_v_guesses->x); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 113, __pyx_L1_error)
  __pyx_v__guesses.x = __pyx_t_11;

  /* "AbstractState.pyx":114
 *         _guesses.rhomolar_vap = guesses.rhomolar_vap
 *         _guesses.x = guesses.x
 *         _guesses.y = guesses.y             # <<<<<<<<<<<<<<
 *         self.thisptr.update_with_guesses(ipair, Value1, Value2, _guesses)
 * 
 */
  __pyx_t_11 = __pyx_convert_vector_from_py_double(__pyx_v_guesses->y); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 114, __pyx_L1_error)
  __pyx_v__guesses.y = __pyx_t_11;

  /* "AbstractState.pyx":115
 *         _guesses.x = guesses.x
 *         _guesses.y = guesses.y
 *         self.thisptr.update_with_guesses(ipair, Value1, Value2, _guesses)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_mole_fractions(self, vector[double] z):
 */
  try {
    __pyx_v_self->thisptr->update_with_guesses(__pyx_v_ipair, __pyx_v_Value1, __pyx_v_Value2, __pyx_v__guesses);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 115, __pyx_L1_error)
  }

  /* "AbstractState.pyx":105
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         self.thisptr.update(ipair, Value1, Value2)
 *     cpdef update_with_guesses(self, constants_header.input_pairs ipair, double Value1, double Value2, PyGuessesStructure guesses):             # <<<<<<<<<<<<<<
 *         """ Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` """
 *         cdef cAbstractState.GuessesStructure _guesses
 */

  /* 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_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.update_with_guesses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_37update_with_guesses(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_36update_with_guesses[] = " Update function - wrapper of c++ function :cpapi:`CoolProp::AbstractState::update` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_37update_with_guesses(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::input_pairs __pyx_v_ipair;
  double __pyx_v_Value1;
  double __pyx_v_Value2;
  struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_guesses = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_with_guesses (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ipair,&__pyx_n_s_Value1,&__pyx_n_s_Value2,&__pyx_n_s_guesses,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_ipair)) != 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_Value1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_with_guesses", 1, 4, 4, 1); __PYX_ERR(2, 105, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Value2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_with_guesses", 1, 4, 4, 2); __PYX_ERR(2, 105, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_guesses)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_with_guesses", 1, 4, 4, 3); __PYX_ERR(2, 105, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_with_guesses") < 0)) __PYX_ERR(2, 105, __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_ipair = ((CoolProp::input_pairs)__Pyx_PyInt_As_CoolProp_3a__3a_input_pairs(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 105, __pyx_L3_error)
    __pyx_v_Value1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Value1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 105, __pyx_L3_error)
    __pyx_v_Value2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Value2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 105, __pyx_L3_error)
    __pyx_v_guesses = ((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)values[3]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_with_guesses", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 105, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.update_with_guesses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_guesses), __pyx_ptype_8CoolProp_8CoolProp_PyGuessesStructure, 1, "guesses", 0))) __PYX_ERR(2, 105, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_36update_with_guesses(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_ipair, __pyx_v_Value1, __pyx_v_Value2, __pyx_v_guesses);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_36update_with_guesses(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::input_pairs __pyx_v_ipair, double __pyx_v_Value1, double __pyx_v_Value2, struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v_guesses) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("update_with_guesses", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_update_with_guesses(__pyx_v_self, __pyx_v_ipair, __pyx_v_Value1, __pyx_v_Value2, __pyx_v_guesses, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 105, __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("CoolProp.CoolProp.AbstractState.update_with_guesses", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":117
 *         self.thisptr.update_with_guesses(ipair, Value1, Value2, _guesses)
 * 
 *     cpdef set_mole_fractions(self, vector[double] z):             # <<<<<<<<<<<<<<
 *         """ Set the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mole_fractions` """
 *         self.thisptr.set_mole_fractions(z)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_39set_mole_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("set_mole_fractions", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_mole_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 117, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_39set_mole_fractions)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_vector_to_py_double(__pyx_v_z); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 117, __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(2, 117, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":119
 *     cpdef set_mole_fractions(self, vector[double] z):
 *         """ Set the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mole_fractions` """
 *         self.thisptr.set_mole_fractions(z)             # <<<<<<<<<<<<<<
 *     cpdef set_mass_fractions(self, vector[double] z):
 *         """ Set the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mass_fractions` """
 */
  try {
    __pyx_v_self->thisptr->set_mole_fractions(__pyx_v_z);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 119, __pyx_L1_error)
  }

  /* "AbstractState.pyx":117
 *         self.thisptr.update_with_guesses(ipair, Value1, Value2, _guesses)
 * 
 *     cpdef set_mole_fractions(self, vector[double] z):             # <<<<<<<<<<<<<<
 *         """ Set the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mole_fractions` """
 *         self.thisptr.set_mole_fractions(z)
 */

  /* 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_AddTraceback("CoolProp.CoolProp.AbstractState.set_mole_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_39set_mole_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_38set_mole_fractions[] = " Set the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mole_fractions` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_39set_mole_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z) {
  std::vector<double>  __pyx_v_z;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mole_fractions (wrapper)", 0);
  assert(__pyx_arg_z); {
    __pyx_v_z = __pyx_convert_vector_from_py_double(__pyx_arg_z); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 117, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_mole_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_38set_mole_fractions(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((std::vector<double> )__pyx_v_z));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_38set_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_mole_fractions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mole_fractions(__pyx_v_self, __pyx_v_z, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 117, __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("CoolProp.CoolProp.AbstractState.set_mole_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":120
 *         """ Set the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mole_fractions` """
 *         self.thisptr.set_mole_fractions(z)
 *     cpdef set_mass_fractions(self, vector[double] z):             # <<<<<<<<<<<<<<
 *         """ Set the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mass_fractions` """
 *         self.thisptr.set_mass_fractions(z)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_41set_mass_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("set_mass_fractions", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_mass_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_41set_mass_fractions)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_vector_to_py_double(__pyx_v_z); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 120, __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(2, 120, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":122
 *     cpdef set_mass_fractions(self, vector[double] z):
 *         """ Set the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mass_fractions` """
 *         self.thisptr.set_mass_fractions(z)             # <<<<<<<<<<<<<<
 *     cpdef set_volu_fractions(self, vector[double] z):
 *         """ Set the volume fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_volu_fractions` """
 */
  try {
    __pyx_v_self->thisptr->set_mass_fractions(__pyx_v_z);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 122, __pyx_L1_error)
  }

  /* "AbstractState.pyx":120
 *         """ Set the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mole_fractions` """
 *         self.thisptr.set_mole_fractions(z)
 *     cpdef set_mass_fractions(self, vector[double] z):             # <<<<<<<<<<<<<<
 *         """ Set the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mass_fractions` """
 *         self.thisptr.set_mass_fractions(z)
 */

  /* 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_AddTraceback("CoolProp.CoolProp.AbstractState.set_mass_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_41set_mass_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_40set_mass_fractions[] = " Set the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mass_fractions` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_41set_mass_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z) {
  std::vector<double>  __pyx_v_z;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mass_fractions (wrapper)", 0);
  assert(__pyx_arg_z); {
    __pyx_v_z = __pyx_convert_vector_from_py_double(__pyx_arg_z); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 120, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_mass_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_40set_mass_fractions(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((std::vector<double> )__pyx_v_z));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_40set_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_mass_fractions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mass_fractions(__pyx_v_self, __pyx_v_z, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __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("CoolProp.CoolProp.AbstractState.set_mass_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":123
 *         """ Set the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mass_fractions` """
 *         self.thisptr.set_mass_fractions(z)
 *     cpdef set_volu_fractions(self, vector[double] z):             # <<<<<<<<<<<<<<
 *         """ Set the volume fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_volu_fractions` """
 *         self.thisptr.set_volu_fractions(z)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_43set_volu_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_volu_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("set_volu_fractions", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_volu_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_43set_volu_fractions)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_vector_to_py_double(__pyx_v_z); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 123, __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(2, 123, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":125
 *     cpdef set_volu_fractions(self, vector[double] z):
 *         """ Set the volume fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_volu_fractions` """
 *         self.thisptr.set_volu_fractions(z)             # <<<<<<<<<<<<<<
 *     cpdef get_mole_fractions(self):
 *         """ Get the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mole_fractions` """
 */
  try {
    __pyx_v_self->thisptr->set_volu_fractions(__pyx_v_z);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 125, __pyx_L1_error)
  }

  /* "AbstractState.pyx":123
 *         """ Set the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_mass_fractions` """
 *         self.thisptr.set_mass_fractions(z)
 *     cpdef set_volu_fractions(self, vector[double] z):             # <<<<<<<<<<<<<<
 *         """ Set the volume fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_volu_fractions` """
 *         self.thisptr.set_volu_fractions(z)
 */

  /* 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_AddTraceback("CoolProp.CoolProp.AbstractState.set_volu_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_43set_volu_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_42set_volu_fractions[] = " Set the volume fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_volu_fractions` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_43set_volu_fractions(PyObject *__pyx_v_self, PyObject *__pyx_arg_z) {
  std::vector<double>  __pyx_v_z;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_volu_fractions (wrapper)", 0);
  assert(__pyx_arg_z); {
    __pyx_v_z = __pyx_convert_vector_from_py_double(__pyx_arg_z); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 123, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.set_volu_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_42set_volu_fractions(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((std::vector<double> )__pyx_v_z));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_42set_volu_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::vector<double>  __pyx_v_z) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_volu_fractions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_set_volu_fractions(__pyx_v_self, __pyx_v_z, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __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("CoolProp.CoolProp.AbstractState.set_volu_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":126
 *         """ Set the volume fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_volu_fractions` """
 *         self.thisptr.set_volu_fractions(z)
 *     cpdef get_mole_fractions(self):             # <<<<<<<<<<<<<<
 *         """ Get the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mole_fractions` """
 *         return self.thisptr.get_mole_fractions()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_45get_mole_fractions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::vector<__pyx_t_8CoolProp_8typedefs_CoolPropDbl>  __pyx_t_5;
  __Pyx_RefNannySetupContext("get_mole_fractions", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_mole_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 126, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_45get_mole_fractions)) {
        __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(2, 126, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":128
 *     cpdef get_mole_fractions(self):
 *         """ Get the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mole_fractions` """
 *         return self.thisptr.get_mole_fractions()             # <<<<<<<<<<<<<<
 *     cpdef get_mass_fractions(self):
 *         """ Get the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mass_fractions` """
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->get_mole_fractions();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 128, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":126
 *         """ Set the volume fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_volu_fractions` """
 *         self.thisptr.set_volu_fractions(z)
 *     cpdef get_mole_fractions(self):             # <<<<<<<<<<<<<<
 *         """ Get the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mole_fractions` """
 *         return self.thisptr.get_mole_fractions()
 */

  /* 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("CoolProp.CoolProp.AbstractState.get_mole_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_45get_mole_fractions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_44get_mole_fractions[] = " Get the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mole_fractions` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_45get_mole_fractions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_mole_fractions (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_44get_mole_fractions(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_44get_mole_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_mole_fractions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mole_fractions(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 126, __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("CoolProp.CoolProp.AbstractState.get_mole_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":129
 *         """ Get the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mole_fractions` """
 *         return self.thisptr.get_mole_fractions()
 *     cpdef get_mass_fractions(self):             # <<<<<<<<<<<<<<
 *         """ Get the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mass_fractions` """
 *         return self.thisptr.get_mass_fractions()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_47get_mass_fractions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::vector<__pyx_t_8CoolProp_8typedefs_CoolPropDbl>  __pyx_t_5;
  __Pyx_RefNannySetupContext("get_mass_fractions", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_mass_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_47get_mass_fractions)) {
        __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(2, 129, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":131
 *     cpdef get_mass_fractions(self):
 *         """ Get the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mass_fractions` """
 *         return self.thisptr.get_mass_fractions()             # <<<<<<<<<<<<<<
 * 
 *     ## ----------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->get_mass_fractions();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 131, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":129
 *         """ Get the mole fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mole_fractions` """
 *         return self.thisptr.get_mole_fractions()
 *     cpdef get_mass_fractions(self):             # <<<<<<<<<<<<<<
 *         """ Get the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mass_fractions` """
 *         return self.thisptr.get_mass_fractions()
 */

  /* 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("CoolProp.CoolProp.AbstractState.get_mass_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_47get_mass_fractions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_46get_mass_fractions[] = " Get the mass fractions - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_mass_fractions` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_47get_mass_fractions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_mass_fractions (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_46get_mass_fractions(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_46get_mass_fractions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_mass_fractions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mass_fractions(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 129, __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("CoolProp.CoolProp.AbstractState.get_mass_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":136
 *     ##        Limits
 *     ## ----------------------------------------
 *     cpdef double Tmin(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the minimum temperature in K- wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmin` """
 *         return self.thisptr.Tmin()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_49Tmin(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmin(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("Tmin", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Tmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_49Tmin)) {
        __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(2, 136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 136, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":138
 *     cpdef double Tmin(self) except *:
 *         """ Set the minimum temperature in K- wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmin` """
 *         return self.thisptr.Tmin()             # <<<<<<<<<<<<<<
 *     cpdef double Tmax(self) except *:
 *         """ Set the maximum temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmax` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->Tmin();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 138, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":136
 *     ##        Limits
 *     ## ----------------------------------------
 *     cpdef double Tmin(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the minimum temperature in K- wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmin` """
 *         return self.thisptr.Tmin()
 */

  /* 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("CoolProp.CoolProp.AbstractState.Tmin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_49Tmin(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_48Tmin[] = " Set the minimum temperature in K- wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmin` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_49Tmin(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Tmin (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_48Tmin(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_48Tmin(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Tmin", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmin(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 136, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.Tmin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":139
 *         """ Set the minimum temperature in K- wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmin` """
 *         return self.thisptr.Tmin()
 *     cpdef double Tmax(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the maximum temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmax` """
 *         return self.thisptr.Tmax()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_51Tmax(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("Tmax", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Tmax); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_51Tmax)) {
        __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(2, 139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 139, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":141
 *     cpdef double Tmax(self) except *:
 *         """ Set the maximum temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmax` """
 *         return self.thisptr.Tmax()             # <<<<<<<<<<<<<<
 *     cpdef double pmax(self) except *:
 *         """ Set the maximum pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::pmax` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->Tmax();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 141, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":139
 *         """ Set the minimum temperature in K- wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmin` """
 *         return self.thisptr.Tmin()
 *     cpdef double Tmax(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the maximum temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmax` """
 *         return self.thisptr.Tmax()
 */

  /* 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("CoolProp.CoolProp.AbstractState.Tmax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_51Tmax(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_50Tmax[] = " Set the maximum temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmax` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_51Tmax(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Tmax (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_50Tmax(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_50Tmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Tmax", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmax(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 139, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.Tmax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":142
 *         """ Set the maximum temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmax` """
 *         return self.thisptr.Tmax()
 *     cpdef double pmax(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the maximum pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::pmax` """
 *         return self.thisptr.pmax()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_53pmax(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_pmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("pmax", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pmax); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 142, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_53pmax)) {
        __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(2, 142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 142, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":144
 *     cpdef double pmax(self) except *:
 *         """ Set the maximum pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::pmax` """
 *         return self.thisptr.pmax()             # <<<<<<<<<<<<<<
 *     cpdef double Ttriple(self) except *:
 *         """ Set the triple point temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Ttriple` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->pmax();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 144, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":142
 *         """ Set the maximum temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Tmax` """
 *         return self.thisptr.Tmax()
 *     cpdef double pmax(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the maximum pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::pmax` """
 *         return self.thisptr.pmax()
 */

  /* 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("CoolProp.CoolProp.AbstractState.pmax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_53pmax(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_52pmax[] = " Set the maximum pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::pmax` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_53pmax(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pmax (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_52pmax(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_52pmax(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("pmax", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_pmax(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 142, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.pmax", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":145
 *         """ Set the maximum pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::pmax` """
 *         return self.thisptr.pmax()
 *     cpdef double Ttriple(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the triple point temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Ttriple` """
 *         return self.thisptr.Ttriple()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_55Ttriple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Ttriple(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("Ttriple", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Ttriple); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_55Ttriple)) {
        __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(2, 145, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 145, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":147
 *     cpdef double Ttriple(self) except *:
 *         """ Set the triple point temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Ttriple` """
 *         return self.thisptr.Ttriple()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->Ttriple();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 147, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":145
 *         """ Set the maximum pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::pmax` """
 *         return self.thisptr.pmax()
 *     cpdef double Ttriple(self) except *:             # <<<<<<<<<<<<<<
 *         """ Set the triple point temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Ttriple` """
 *         return self.thisptr.Ttriple()
 */

  /* 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("CoolProp.CoolProp.AbstractState.Ttriple", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_55Ttriple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_54Ttriple[] = " Set the triple point temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Ttriple` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_55Ttriple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Ttriple (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_54Ttriple(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_54Ttriple(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Ttriple", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_Ttriple(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 145, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.Ttriple", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":151
 * 
 *     ## Critical point
 *     cpdef double T_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_critical` """
 *         return self.thisptr.T_critical()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_57T_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_T_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("T_critical", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_T_critical); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_57T_critical)) {
        __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(2, 151, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 151, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":153
 *     cpdef double T_critical(self) except *:
 *         """ Gets the critical temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_critical` """
 *         return self.thisptr.T_critical()             # <<<<<<<<<<<<<<
 *     cpdef double rhomass_critical(self) except *:
 *         """ Gets the critical density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_critical` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->T_critical();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 153, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":151
 * 
 *     ## Critical point
 *     cpdef double T_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_critical` """
 *         return self.thisptr.T_critical()
 */

  /* 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("CoolProp.CoolProp.AbstractState.T_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_57T_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_56T_critical[] = " Gets the critical temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_critical` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_57T_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("T_critical (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_56T_critical(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_56T_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("T_critical", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_T_critical(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 151, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.T_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":154
 *         """ Gets the critical temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_critical` """
 *         return self.thisptr.T_critical()
 *     cpdef double rhomass_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_critical` """
 *         return self.thisptr.rhomass_critical()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_59rhomass_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("rhomass_critical", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rhomass_critical); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 154, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_59rhomass_critical)) {
        __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(2, 154, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 154, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":156
 *     cpdef double rhomass_critical(self) except *:
 *         """ Gets the critical density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_critical` """
 *         return self.thisptr.rhomass_critical()             # <<<<<<<<<<<<<<
 *     cpdef double rhomolar_critical(self) except *:
 *         """ Gets the critical density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_critical` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->rhomass_critical();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 156, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":154
 *         """ Gets the critical temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_critical` """
 *         return self.thisptr.T_critical()
 *     cpdef double rhomass_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_critical` """
 *         return self.thisptr.rhomass_critical()
 */

  /* 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("CoolProp.CoolProp.AbstractState.rhomass_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_59rhomass_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_58rhomass_critical[] = " Gets the critical density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_critical` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_59rhomass_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rhomass_critical (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_58rhomass_critical(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_58rhomass_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("rhomass_critical", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_critical(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 154, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.rhomass_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":157
 *         """ Gets the critical density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_critical` """
 *         return self.thisptr.rhomass_critical()
 *     cpdef double rhomolar_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_critical` """
 *         return self.thisptr.rhomolar_critical()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_61rhomolar_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("rhomolar_critical", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rhomolar_critical); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 157, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_61rhomolar_critical)) {
        __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(2, 157, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 157, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":159
 *     cpdef double rhomolar_critical(self) except *:
 *         """ Gets the critical density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_critical` """
 *         return self.thisptr.rhomolar_critical()             # <<<<<<<<<<<<<<
 *     cpdef double p_critical(self) except *:
 *         """ Gets the critical pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p_critical` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->rhomolar_critical();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 159, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":157
 *         """ Gets the critical density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_critical` """
 *         return self.thisptr.rhomass_critical()
 *     cpdef double rhomolar_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_critical` """
 *         return self.thisptr.rhomolar_critical()
 */

  /* 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("CoolProp.CoolProp.AbstractState.rhomolar_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_61rhomolar_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_60rhomolar_critical[] = " Gets the critical density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_critical` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_61rhomolar_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rhomolar_critical (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_60rhomolar_critical(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_60rhomolar_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("rhomolar_critical", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_critical(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 157, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.rhomolar_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":160
 *         """ Gets the critical density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_critical` """
 *         return self.thisptr.rhomolar_critical()
 *     cpdef double p_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p_critical` """
 *         return self.thisptr.p_critical()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_63p_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_p_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("p_critical", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_p_critical); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_63p_critical)) {
        __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(2, 160, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 160, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":162
 *     cpdef double p_critical(self) except *:
 *         """ Gets the critical pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p_critical` """
 *         return self.thisptr.p_critical()             # <<<<<<<<<<<<<<
 * 
 *     cpdef list all_critical_points(self):
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->p_critical();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 162, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":160
 *         """ Gets the critical density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_critical` """
 *         return self.thisptr.rhomolar_critical()
 *     cpdef double p_critical(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the critical pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p_critical` """
 *         return self.thisptr.p_critical()
 */

  /* 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("CoolProp.CoolProp.AbstractState.p_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_63p_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_62p_critical[] = " Gets the critical pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p_critical` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_63p_critical(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p_critical (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_62p_critical(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_62p_critical(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p_critical", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_p_critical(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 160, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.p_critical", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":164
 *         return self.thisptr.p_critical()
 * 
 *     cpdef list all_critical_points(self):             # <<<<<<<<<<<<<<
 *         """ Calculate all the critical points - wrapper of c++ function :cpapi:`CoolProp::AbstractState::all_critical_points` """
 *         # Get all the critical points
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_65all_critical_points(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_all_critical_points(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  std::vector<CoolProp::CriticalState>  __pyx_v_critpts;
  struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v_pypt = 0;
  PyObject *__pyx_v_collection = 0;
  CoolProp::CriticalState __pyx_v_pt;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::vector<CoolProp::CriticalState>  __pyx_t_5;
  std::vector<CoolProp::CriticalState> ::iterator __pyx_t_6;
  CoolProp::CriticalState __pyx_t_7;
  bool __pyx_t_8;
  double __pyx_t_9;
  int __pyx_t_10;
  __Pyx_RefNannySetupContext("all_critical_points", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_all_critical_points); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_65all_critical_points)) {
        __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(2, 164, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyList_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(2, 164, __pyx_L1_error)
        __pyx_r = ((PyObject*)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":167
 *         """ Calculate all the critical points - wrapper of c++ function :cpapi:`CoolProp::AbstractState::all_critical_points` """
 *         # Get all the critical points
 *         cdef vector[cAbstractState.CriticalState] critpts = self.thisptr.all_critical_points()             # <<<<<<<<<<<<<<
 *         cdef PyCriticalState pypt
 *         cdef list collection = []
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->all_critical_points();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 167, __pyx_L1_error)
  }
  __pyx_v_critpts = __pyx_t_5;

  /* "AbstractState.pyx":169
 *         cdef vector[cAbstractState.CriticalState] critpts = self.thisptr.all_critical_points()
 *         cdef PyCriticalState pypt
 *         cdef list collection = []             # <<<<<<<<<<<<<<
 *         # Convert to python
 *         for pt in critpts:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_collection = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":171
 *         cdef list collection = []
 *         # Convert to python
 *         for pt in critpts:             # <<<<<<<<<<<<<<
 *             pypt = PyCriticalState()
 *             pypt.stable = pt.stable
 */
  __pyx_t_6 = __pyx_v_critpts.begin();
  for (;;) {
    if (!(__pyx_t_6 != __pyx_v_critpts.end())) break;
    __pyx_t_7 = *__pyx_t_6;
    ++__pyx_t_6;
    __pyx_v_pt = __pyx_t_7;

    /* "AbstractState.pyx":172
 *         # Convert to python
 *         for pt in critpts:
 *             pypt = PyCriticalState()             # <<<<<<<<<<<<<<
 *             pypt.stable = pt.stable
 *             pypt.T = pt.T
 */
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_PyCriticalState)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 172, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_pypt, ((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "AbstractState.pyx":173
 *         for pt in critpts:
 *             pypt = PyCriticalState()
 *             pypt.stable = pt.stable             # <<<<<<<<<<<<<<
 *             pypt.T = pt.T
 *             pypt.p = pt.p
 */
    __pyx_t_8 = __pyx_v_pt.stable;
    __pyx_v_pypt->stable = __pyx_t_8;

    /* "AbstractState.pyx":174
 *             pypt = PyCriticalState()
 *             pypt.stable = pt.stable
 *             pypt.T = pt.T             # <<<<<<<<<<<<<<
 *             pypt.p = pt.p
 *             pypt.rhomolar = pt.rhomolar
 */
    __pyx_t_9 = __pyx_v_pt.T;
    __pyx_v_pypt->T = __pyx_t_9;

    /* "AbstractState.pyx":175
 *             pypt.stable = pt.stable
 *             pypt.T = pt.T
 *             pypt.p = pt.p             # <<<<<<<<<<<<<<
 *             pypt.rhomolar = pt.rhomolar
 *             collection.append(pypt)
 */
    __pyx_t_9 = __pyx_v_pt.p;
    __pyx_v_pypt->p = __pyx_t_9;

    /* "AbstractState.pyx":176
 *             pypt.T = pt.T
 *             pypt.p = pt.p
 *             pypt.rhomolar = pt.rhomolar             # <<<<<<<<<<<<<<
 *             collection.append(pypt)
 *         return collection
 */
    __pyx_t_9 = __pyx_v_pt.rhomolar;
    __pyx_v_pypt->rhomolar = __pyx_t_9;

    /* "AbstractState.pyx":177
 *             pypt.p = pt.p
 *             pypt.rhomolar = pt.rhomolar
 *             collection.append(pypt)             # <<<<<<<<<<<<<<
 *         return collection
 *     cpdef tuple criticality_contour_values(self):
 */
    __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_collection, ((PyObject *)__pyx_v_pypt)); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(2, 177, __pyx_L1_error)

    /* "AbstractState.pyx":171
 *         cdef list collection = []
 *         # Convert to python
 *         for pt in critpts:             # <<<<<<<<<<<<<<
 *             pypt = PyCriticalState()
 *             pypt.stable = pt.stable
 */
  }

  /* "AbstractState.pyx":178
 *             pypt.rhomolar = pt.rhomolar
 *             collection.append(pypt)
 *         return collection             # <<<<<<<<<<<<<<
 *     cpdef tuple criticality_contour_values(self):
 *         """
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_collection);
  __pyx_r = __pyx_v_collection;
  goto __pyx_L0;

  /* "AbstractState.pyx":164
 *         return self.thisptr.p_critical()
 * 
 *     cpdef list all_critical_points(self):             # <<<<<<<<<<<<<<
 *         """ Calculate all the critical points - wrapper of c++ function :cpapi:`CoolProp::AbstractState::all_critical_points` """
 *         # Get all the critical points
 */

  /* 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("CoolProp.CoolProp.AbstractState.all_critical_points", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pypt);
  __Pyx_XDECREF(__pyx_v_collection);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_65all_critical_points(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_64all_critical_points[] = " Calculate all the critical points - wrapper of c++ function :cpapi:`CoolProp::AbstractState::all_critical_points` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_65all_critical_points(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("all_critical_points (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_64all_critical_points(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_64all_critical_points(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("all_critical_points", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_all_critical_points(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __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("CoolProp.CoolProp.AbstractState.all_critical_points", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":179
 *             collection.append(pypt)
 *         return collection
 *     cpdef tuple criticality_contour_values(self):             # <<<<<<<<<<<<<<
 *         """
 *         Gets the criticality matrix values L1* and M1* - wrapper of c++ function :cpapi:`CoolProp::AbstractState::criticality_contour_values`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_67criticality_contour_values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_criticality_contour_values(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_L1star;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_M1star;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("criticality_contour_values", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_criticality_contour_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 179, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_67criticality_contour_values)) {
        __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(2, 179, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(2, 179, __pyx_L1_error)
        __pyx_r = ((PyObject*)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":184
 *         Returns a tuple of (L1*, M1*)
 *         """
 *         cdef CoolPropDbl L1star = 0, M1star = 0             # <<<<<<<<<<<<<<
 *         self.thisptr.criticality_contour_values(L1star, M1star)
 *         return L1star, M1star
 */
  __pyx_v_L1star = 0.0;
  __pyx_v_M1star = 0.0;

  /* "AbstractState.pyx":185
 *         """
 *         cdef CoolPropDbl L1star = 0, M1star = 0
 *         self.thisptr.criticality_contour_values(L1star, M1star)             # <<<<<<<<<<<<<<
 *         return L1star, M1star
 * 
 */
  try {
    __pyx_v_self->thisptr->criticality_contour_values(__pyx_v_L1star, __pyx_v_M1star);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 185, __pyx_L1_error)
  }

  /* "AbstractState.pyx":186
 *         cdef CoolPropDbl L1star = 0, M1star = 0
 *         self.thisptr.criticality_contour_values(L1star, M1star)
 *         return L1star, M1star             # <<<<<<<<<<<<<<
 * 
 *     cpdef build_spinodal(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_L1star); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_M1star); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 186, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":179
 *             collection.append(pypt)
 *         return collection
 *     cpdef tuple criticality_contour_values(self):             # <<<<<<<<<<<<<<
 *         """
 *         Gets the criticality matrix values L1* and M1* - wrapper of c++ function :cpapi:`CoolProp::AbstractState::criticality_contour_values`
 */

  /* 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("CoolProp.CoolProp.AbstractState.criticality_contour_values", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_67criticality_contour_values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_66criticality_contour_values[] = " \n        Gets the criticality matrix values L1* and M1* - wrapper of c++ function :cpapi:`CoolProp::AbstractState::criticality_contour_values` \n        Returns a tuple of (L1*, M1*)\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_67criticality_contour_values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("criticality_contour_values (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_66criticality_contour_values(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_66criticality_contour_values(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("criticality_contour_values", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_criticality_contour_values(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 179, __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("CoolProp.CoolProp.AbstractState.criticality_contour_values", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":188
 *         return L1star, M1star
 * 
 *     cpdef build_spinodal(self):             # <<<<<<<<<<<<<<
 *         """ Calculate the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_spinodal` """
 *         self.thisptr.build_spinodal()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_69build_spinodal(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_build_spinodal(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("build_spinodal", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_build_spinodal); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 188, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_69build_spinodal)) {
        __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(2, 188, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":190
 *     cpdef build_spinodal(self):
 *         """ Calculate the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_spinodal` """
 *         self.thisptr.build_spinodal()             # <<<<<<<<<<<<<<
 *     cpdef PySpinodalData get_spinodal_data(self):
 *         """ Get the data from the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_spinodal_data` """
 */
  try {
    __pyx_v_self->thisptr->build_spinodal();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 190, __pyx_L1_error)
  }

  /* "AbstractState.pyx":188
 *         return L1star, M1star
 * 
 *     cpdef build_spinodal(self):             # <<<<<<<<<<<<<<
 *         """ Calculate the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_spinodal` """
 *         self.thisptr.build_spinodal()
 */

  /* 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("CoolProp.CoolProp.AbstractState.build_spinodal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_69build_spinodal(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_68build_spinodal[] = " Calculate the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_spinodal` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_69build_spinodal(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("build_spinodal (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_68build_spinodal(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_68build_spinodal(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("build_spinodal", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_build_spinodal(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 188, __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("CoolProp.CoolProp.AbstractState.build_spinodal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":191
 *         """ Calculate the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_spinodal` """
 *         self.thisptr.build_spinodal()
 *     cpdef PySpinodalData get_spinodal_data(self):             # <<<<<<<<<<<<<<
 *         """ Get the data from the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_spinodal_data` """
 *         cdef cAbstractState.SpinodalData data = self.thisptr.get_spinodal_data()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_71get_spinodal_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_spinodal_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  CoolProp::SpinodalData __pyx_v_data;
  struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v_out = 0;
  struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  CoolProp::SpinodalData __pyx_t_5;
  std::vector<double>  __pyx_t_6;
  __Pyx_RefNannySetupContext("get_spinodal_data", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_spinodal_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 191, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_71get_spinodal_data)) {
        __Pyx_XDECREF(((PyObject *)__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(2, 191, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8CoolProp_8CoolProp_PySpinodalData))))) __PYX_ERR(2, 191, __pyx_L1_error)
        __pyx_r = ((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":193
 *     cpdef PySpinodalData get_spinodal_data(self):
 *         """ Get the data from the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_spinodal_data` """
 *         cdef cAbstractState.SpinodalData data = self.thisptr.get_spinodal_data()             # <<<<<<<<<<<<<<
 *         cdef PySpinodalData out = PySpinodalData()
 *         out.tau = data.tau
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->get_spinodal_data();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 193, __pyx_L1_error)
  }
  __pyx_v_data = __pyx_t_5;

  /* "AbstractState.pyx":194
 *         """ Get the data from the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_spinodal_data` """
 *         cdef cAbstractState.SpinodalData data = self.thisptr.get_spinodal_data()
 *         cdef PySpinodalData out = PySpinodalData()             # <<<<<<<<<<<<<<
 *         out.tau = data.tau
 *         out.delta = data.delta
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_PySpinodalData)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_out = ((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":195
 *         cdef cAbstractState.SpinodalData data = self.thisptr.get_spinodal_data()
 *         cdef PySpinodalData out = PySpinodalData()
 *         out.tau = data.tau             # <<<<<<<<<<<<<<
 *         out.delta = data.delta
 *         out.M1 = data.M1
 */
  __pyx_t_6 = __pyx_v_data.tau;
  __pyx_v_out->tau = __pyx_t_6;

  /* "AbstractState.pyx":196
 *         cdef PySpinodalData out = PySpinodalData()
 *         out.tau = data.tau
 *         out.delta = data.delta             # <<<<<<<<<<<<<<
 *         out.M1 = data.M1
 *         return out
 */
  __pyx_t_6 = __pyx_v_data.delta;
  __pyx_v_out->delta = __pyx_t_6;

  /* "AbstractState.pyx":197
 *         out.tau = data.tau
 *         out.delta = data.delta
 *         out.M1 = data.M1             # <<<<<<<<<<<<<<
 *         return out
 * 
 */
  __pyx_t_6 = __pyx_v_data.M1;
  __pyx_v_out->M1 = __pyx_t_6;

  /* "AbstractState.pyx":198
 *         out.delta = data.delta
 *         out.M1 = data.M1
 *         return out             # <<<<<<<<<<<<<<
 * 
 *     ## Reducing point
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_out));
  __pyx_r = __pyx_v_out;
  goto __pyx_L0;

  /* "AbstractState.pyx":191
 *         """ Calculate the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_spinodal` """
 *         self.thisptr.build_spinodal()
 *     cpdef PySpinodalData get_spinodal_data(self):             # <<<<<<<<<<<<<<
 *         """ Get the data from the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_spinodal_data` """
 *         cdef cAbstractState.SpinodalData data = self.thisptr.get_spinodal_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_AddTraceback("CoolProp.CoolProp.AbstractState.get_spinodal_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_out);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_71get_spinodal_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_70get_spinodal_data[] = " Get the data from the spinodal - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_spinodal_data` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_71get_spinodal_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_spinodal_data (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_70get_spinodal_data(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_70get_spinodal_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_spinodal_data", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_spinodal_data(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 191, __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("CoolProp.CoolProp.AbstractState.get_spinodal_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":201
 * 
 *     ## Reducing point
 *     cpdef double T_reducing(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the reducing temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_reducing` """
 *         return self.thisptr.T_reducing()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_73T_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_T_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("T_reducing", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_T_reducing); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 201, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_73T_reducing)) {
        __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(2, 201, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 201, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":203
 *     cpdef double T_reducing(self) except *:
 *         """ Gets the reducing temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_reducing` """
 *         return self.thisptr.T_reducing()             # <<<<<<<<<<<<<<
 *     cpdef double rhomolar_reducing(self) except *:
 *         """ Gets the reducing density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_reducing` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->T_reducing();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 203, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":201
 * 
 *     ## Reducing point
 *     cpdef double T_reducing(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the reducing temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_reducing` """
 *         return self.thisptr.T_reducing()
 */

  /* 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("CoolProp.CoolProp.AbstractState.T_reducing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_73T_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_72T_reducing[] = " Gets the reducing temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_reducing` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_73T_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("T_reducing (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_72T_reducing(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_72T_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("T_reducing", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_T_reducing(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 201, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.T_reducing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":204
 *         """ Gets the reducing temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_reducing` """
 *         return self.thisptr.T_reducing()
 *     cpdef double rhomolar_reducing(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the reducing density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_reducing` """
 *         return self.thisptr.rhomolar_reducing()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_75rhomolar_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("rhomolar_reducing", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rhomolar_reducing); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 204, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_75rhomolar_reducing)) {
        __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(2, 204, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 204, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":206
 *     cpdef double rhomolar_reducing(self) except *:
 *         """ Gets the reducing density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_reducing` """
 *         return self.thisptr.rhomolar_reducing()             # <<<<<<<<<<<<<<
 *     cpdef double rhomass_reducing(self) except *:
 *         """ Gets the reducing density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_reducing` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->rhomolar_reducing();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 206, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":204
 *         """ Gets the reducing temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T_reducing` """
 *         return self.thisptr.T_reducing()
 *     cpdef double rhomolar_reducing(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the reducing density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_reducing` """
 *         return self.thisptr.rhomolar_reducing()
 */

  /* 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("CoolProp.CoolProp.AbstractState.rhomolar_reducing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_75rhomolar_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_74rhomolar_reducing[] = " Gets the reducing density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_reducing` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_75rhomolar_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rhomolar_reducing (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_74rhomolar_reducing(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_74rhomolar_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("rhomolar_reducing", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_reducing(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 204, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.rhomolar_reducing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":207
 *         """ Gets the reducing density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_reducing` """
 *         return self.thisptr.rhomolar_reducing()
 *     cpdef double rhomass_reducing(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the reducing density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_reducing` """
 *         return self.thisptr.rhomass_reducing()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_77rhomass_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("rhomass_reducing", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rhomass_reducing); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 207, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_77rhomass_reducing)) {
        __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(2, 207, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 207, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":209
 *     cpdef double rhomass_reducing(self) except *:
 *         """ Gets the reducing density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_reducing` """
 *         return self.thisptr.rhomass_reducing()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->rhomass_reducing();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 209, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":207
 *         """ Gets the reducing density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar_reducing` """
 *         return self.thisptr.rhomolar_reducing()
 *     cpdef double rhomass_reducing(self) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the reducing density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_reducing` """
 *         return self.thisptr.rhomass_reducing()
 */

  /* 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("CoolProp.CoolProp.AbstractState.rhomass_reducing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_77rhomass_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_76rhomass_reducing[] = " Gets the reducing density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass_reducing` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_77rhomass_reducing(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rhomass_reducing (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_76rhomass_reducing(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_76rhomass_reducing(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("rhomass_reducing", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_reducing(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 207, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.rhomass_reducing", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":212
 * 
 * 
 *     cpdef double tangent_plane_distance(self, double T, double p, vector[double] w, double rhomolar_guess = -1) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the tangent_plane_distance - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tangent_plane_distance` """
 *         return self.thisptr.tangent_plane_distance(T, p, w, rhomolar_guess)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_79tangent_plane_distance(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, double __pyx_v_T, double __pyx_v_p, std::vector<double>  __pyx_v_w, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance *__pyx_optional_args) {
  double __pyx_v_rhomolar_guess = ((double)-1.0);
  double __pyx_r;
  __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;
  PyObject *__pyx_t_10 = NULL;
  double __pyx_t_11;
  __Pyx_RefNannySetupContext("tangent_plane_distance", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_rhomolar_guess = __pyx_optional_args->rhomolar_guess;
    }
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_tangent_plane_distance); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 212, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_79tangent_plane_distance)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_T); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_p); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_convert_vector_to_py_double(__pyx_v_w); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_rhomolar_guess); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 212, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 212, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 212, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 212, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 212, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_11;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":214
 *     cpdef double tangent_plane_distance(self, double T, double p, vector[double] w, double rhomolar_guess = -1) except *:
 *         """ Gets the tangent_plane_distance - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tangent_plane_distance` """
 *         return self.thisptr.tangent_plane_distance(T, p, w, rhomolar_guess)             # <<<<<<<<<<<<<<
 * 
 *     ## ----------------------------------------
 */
  try {
    __pyx_t_11 = __pyx_v_self->thisptr->tangent_plane_distance(__pyx_v_T, __pyx_v_p, __pyx_v_w, __pyx_v_rhomolar_guess);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 214, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_11;
  goto __pyx_L0;

  /* "AbstractState.pyx":212
 * 
 * 
 *     cpdef double tangent_plane_distance(self, double T, double p, vector[double] w, double rhomolar_guess = -1) except *:             # <<<<<<<<<<<<<<
 *         """ Gets the tangent_plane_distance - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tangent_plane_distance` """
 *         return self.thisptr.tangent_plane_distance(T, p, w, rhomolar_guess)
 */

  /* 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_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.tangent_plane_distance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_79tangent_plane_distance(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_78tangent_plane_distance[] = " Gets the tangent_plane_distance - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tangent_plane_distance` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_79tangent_plane_distance(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_T;
  double __pyx_v_p;
  std::vector<double>  __pyx_v_w;
  double __pyx_v_rhomolar_guess;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tangent_plane_distance (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_T,&__pyx_n_s_p,&__pyx_n_s_w,&__pyx_n_s_rhomolar_guess,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_T)) != 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_p)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("tangent_plane_distance", 0, 3, 4, 1); __PYX_ERR(2, 212, __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("tangent_plane_distance", 0, 3, 4, 2); __PYX_ERR(2, 212, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rhomolar_guess);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tangent_plane_distance") < 0)) __PYX_ERR(2, 212, __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);
        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_T = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_T == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 212, __pyx_L3_error)
    __pyx_v_p = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 212, __pyx_L3_error)
    __pyx_v_w = __pyx_convert_vector_from_py_double(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 212, __pyx_L3_error)
    if (values[3]) {
      __pyx_v_rhomolar_guess = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_rhomolar_guess == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 212, __pyx_L3_error)
    } else {
      __pyx_v_rhomolar_guess = ((double)-1.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tangent_plane_distance", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 212, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.tangent_plane_distance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_78tangent_plane_distance(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_T, __pyx_v_p, __pyx_v_w, __pyx_v_rhomolar_guess);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_78tangent_plane_distance(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, double __pyx_v_T, double __pyx_v_p, std::vector<double>  __pyx_v_w, double __pyx_v_rhomolar_guess) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("tangent_plane_distance", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.rhomolar_guess = __pyx_v_rhomolar_guess;
  __pyx_t_1 = __pyx_vtabptr_8CoolProp_8CoolProp_AbstractState->tangent_plane_distance(__pyx_v_self, __pyx_v_T, __pyx_v_p, __pyx_v_w, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 212, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 212, __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("CoolProp.CoolProp.AbstractState.tangent_plane_distance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":220
 *     ## ----------------------------------------
 * 
 *     cpdef double get_fluid_constant(self, size_t i,constants_header.parameters param) except *:             # <<<<<<<<<<<<<<
 *         """ Get a constant for a fluid in the mixture :cpapi:`CoolProp::AbstractState::get_fluid_constant` """
 *         return self.thisptr.get_fluid_constant(i, param)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_81get_fluid_constant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, CoolProp::parameters __pyx_v_param, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_9;
  __Pyx_RefNannySetupContext("get_fluid_constant", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_fluid_constant); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_81get_fluid_constant)) {
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 220, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_param); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 220, __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(2, 220, __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(2, 220, __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(2, 220, __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(2, 220, __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_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 220, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_9;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":222
 *     cpdef double get_fluid_constant(self, size_t i,constants_header.parameters param) except *:
 *         """ Get a constant for a fluid in the mixture :cpapi:`CoolProp::AbstractState::get_fluid_constant` """
 *         return self.thisptr.get_fluid_constant(i, param)             # <<<<<<<<<<<<<<
 * 
 *     cpdef double keyed_output(self, parameters iOutput) except *:
 */
  try {
    __pyx_t_9 = __pyx_v_self->thisptr->get_fluid_constant(__pyx_v_i, __pyx_v_param);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 222, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_9;
  goto __pyx_L0;

  /* "AbstractState.pyx":220
 *     ## ----------------------------------------
 * 
 *     cpdef double get_fluid_constant(self, size_t i,constants_header.parameters param) except *:             # <<<<<<<<<<<<<<
 *         """ Get a constant for a fluid in the mixture :cpapi:`CoolProp::AbstractState::get_fluid_constant` """
 *         return self.thisptr.get_fluid_constant(i, param)
 */

  /* 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("CoolProp.CoolProp.AbstractState.get_fluid_constant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_81get_fluid_constant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_80get_fluid_constant[] = " Get a constant for a fluid in the mixture :cpapi:`CoolProp::AbstractState::get_fluid_constant` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_81get_fluid_constant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  size_t __pyx_v_i;
  CoolProp::parameters __pyx_v_param;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_fluid_constant (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_param,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_i)) != 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_param)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_fluid_constant", 1, 2, 2, 1); __PYX_ERR(2, 220, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_fluid_constant") < 0)) __PYX_ERR(2, 220, __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_i = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 220, __pyx_L3_error)
    __pyx_v_param = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 220, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_fluid_constant", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 220, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_fluid_constant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_80get_fluid_constant(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_i, __pyx_v_param);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_80get_fluid_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, CoolProp::parameters __pyx_v_param) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_fluid_constant", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_constant(__pyx_v_self, __pyx_v_i, __pyx_v_param, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 220, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.get_fluid_constant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":224
 *         return self.thisptr.get_fluid_constant(i, param)
 * 
 *     cpdef double keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a keyed output :cpapi:`CoolProp::AbstractState::keyed_output(parameters key)` """
 *         return self.thisptr.keyed_output(iOutput)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_83keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  __Pyx_RefNannySetupContext("keyed_output", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_keyed_output); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 224, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_83keyed_output)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_iOutput); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 224, __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(2, 224, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 224, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":226
 *     cpdef double keyed_output(self, parameters iOutput) except *:
 *         """ Get a keyed output :cpapi:`CoolProp::AbstractState::keyed_output(parameters key)` """
 *         return self.thisptr.keyed_output(iOutput)             # <<<<<<<<<<<<<<
 *     cpdef double trivial_keyed_output(self, parameters iOutput) except *:
 *         """ Get a trivial keyed output not requiring any iteration :cpapi:`CoolProp::AbstractState::trivial_keyed_output(parameters key)` """
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->keyed_output(__pyx_v_iOutput);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 226, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":224
 *         return self.thisptr.get_fluid_constant(i, param)
 * 
 *     cpdef double keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a keyed output :cpapi:`CoolProp::AbstractState::keyed_output(parameters key)` """
 *         return self.thisptr.keyed_output(iOutput)
 */

  /* 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("CoolProp.CoolProp.AbstractState.keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_83keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_82keyed_output[] = " Get a keyed output :cpapi:`CoolProp::AbstractState::keyed_output(parameters key)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_83keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput) {
  CoolProp::parameters __pyx_v_iOutput;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("keyed_output (wrapper)", 0);
  assert(__pyx_arg_iOutput); {
    __pyx_v_iOutput = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_arg_iOutput)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 224, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_82keyed_output(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((CoolProp::parameters)__pyx_v_iOutput));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_82keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("keyed_output", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_keyed_output(__pyx_v_self, __pyx_v_iOutput, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 224, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":227
 *         """ Get a keyed output :cpapi:`CoolProp::AbstractState::keyed_output(parameters key)` """
 *         return self.thisptr.keyed_output(iOutput)
 *     cpdef double trivial_keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a trivial keyed output not requiring any iteration :cpapi:`CoolProp::AbstractState::trivial_keyed_output(parameters key)` """
 *         return self.thisptr.trivial_keyed_output(iOutput)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_85trivial_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_trivial_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  __Pyx_RefNannySetupContext("trivial_keyed_output", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trivial_keyed_output); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 227, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_85trivial_keyed_output)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_iOutput); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 227, __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(2, 227, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 227, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":229
 *     cpdef double trivial_keyed_output(self, parameters iOutput) except *:
 *         """ Get a trivial keyed output not requiring any iteration :cpapi:`CoolProp::AbstractState::trivial_keyed_output(parameters key)` """
 *         return self.thisptr.trivial_keyed_output(iOutput)             # <<<<<<<<<<<<<<
 *     cpdef double saturated_liquid_keyed_output(self, parameters iOutput) except *:
 *         """ Get a trivial output for the saturated liquid :cpapi:`CoolProp::AbstractState::saturated_liquid_keyed_output(parameters key)` """
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->trivial_keyed_output(__pyx_v_iOutput);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 229, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":227
 *         """ Get a keyed output :cpapi:`CoolProp::AbstractState::keyed_output(parameters key)` """
 *         return self.thisptr.keyed_output(iOutput)
 *     cpdef double trivial_keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a trivial keyed output not requiring any iteration :cpapi:`CoolProp::AbstractState::trivial_keyed_output(parameters key)` """
 *         return self.thisptr.trivial_keyed_output(iOutput)
 */

  /* 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("CoolProp.CoolProp.AbstractState.trivial_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_85trivial_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_84trivial_keyed_output[] = " Get a trivial keyed output not requiring any iteration :cpapi:`CoolProp::AbstractState::trivial_keyed_output(parameters key)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_85trivial_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput) {
  CoolProp::parameters __pyx_v_iOutput;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("trivial_keyed_output (wrapper)", 0);
  assert(__pyx_arg_iOutput); {
    __pyx_v_iOutput = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_arg_iOutput)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 227, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.trivial_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_84trivial_keyed_output(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((CoolProp::parameters)__pyx_v_iOutput));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_84trivial_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("trivial_keyed_output", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_trivial_keyed_output(__pyx_v_self, __pyx_v_iOutput, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 227, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.trivial_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":230
 *         """ Get a trivial keyed output not requiring any iteration :cpapi:`CoolProp::AbstractState::trivial_keyed_output(parameters key)` """
 *         return self.thisptr.trivial_keyed_output(iOutput)
 *     cpdef double saturated_liquid_keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a trivial output for the saturated liquid :cpapi:`CoolProp::AbstractState::saturated_liquid_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_liquid_keyed_output(iOutput)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_87saturated_liquid_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_liquid_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  __Pyx_RefNannySetupContext("saturated_liquid_keyed_output", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_saturated_liquid_keyed_output); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_87saturated_liquid_keyed_output)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_iOutput); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 230, __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(2, 230, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 230, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":232
 *     cpdef double saturated_liquid_keyed_output(self, parameters iOutput) except *:
 *         """ Get a trivial output for the saturated liquid :cpapi:`CoolProp::AbstractState::saturated_liquid_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_liquid_keyed_output(iOutput)             # <<<<<<<<<<<<<<
 *     cpdef double saturated_vapor_keyed_output(self, parameters iOutput) except *:
 *         """ Get a trivial output for the saturated vapor :cpapi:`CoolProp::AbstractState::saturated_vapor_keyed_output(parameters key)` """
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->saturated_liquid_keyed_output(__pyx_v_iOutput);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 232, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":230
 *         """ Get a trivial keyed output not requiring any iteration :cpapi:`CoolProp::AbstractState::trivial_keyed_output(parameters key)` """
 *         return self.thisptr.trivial_keyed_output(iOutput)
 *     cpdef double saturated_liquid_keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a trivial output for the saturated liquid :cpapi:`CoolProp::AbstractState::saturated_liquid_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_liquid_keyed_output(iOutput)
 */

  /* 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("CoolProp.CoolProp.AbstractState.saturated_liquid_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_87saturated_liquid_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_86saturated_liquid_keyed_output[] = " Get a trivial output for the saturated liquid :cpapi:`CoolProp::AbstractState::saturated_liquid_keyed_output(parameters key)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_87saturated_liquid_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput) {
  CoolProp::parameters __pyx_v_iOutput;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("saturated_liquid_keyed_output (wrapper)", 0);
  assert(__pyx_arg_iOutput); {
    __pyx_v_iOutput = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_arg_iOutput)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 230, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.saturated_liquid_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_86saturated_liquid_keyed_output(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((CoolProp::parameters)__pyx_v_iOutput));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_86saturated_liquid_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("saturated_liquid_keyed_output", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_liquid_keyed_output(__pyx_v_self, __pyx_v_iOutput, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 230, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.saturated_liquid_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":233
 *         """ Get a trivial output for the saturated liquid :cpapi:`CoolProp::AbstractState::saturated_liquid_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_liquid_keyed_output(iOutput)
 *     cpdef double saturated_vapor_keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a trivial output for the saturated vapor :cpapi:`CoolProp::AbstractState::saturated_vapor_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_vapor_keyed_output(iOutput)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_89saturated_vapor_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_vapor_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  __Pyx_RefNannySetupContext("saturated_vapor_keyed_output", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_saturated_vapor_keyed_output); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 233, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_89saturated_vapor_keyed_output)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_iOutput); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 233, __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(2, 233, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 233, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":235
 *     cpdef double saturated_vapor_keyed_output(self, parameters iOutput) except *:
 *         """ Get a trivial output for the saturated vapor :cpapi:`CoolProp::AbstractState::saturated_vapor_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_vapor_keyed_output(iOutput)             # <<<<<<<<<<<<<<
 * 
 *     cpdef double T(self) except *:
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->saturated_vapor_keyed_output(__pyx_v_iOutput);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 235, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":233
 *         """ Get a trivial output for the saturated liquid :cpapi:`CoolProp::AbstractState::saturated_liquid_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_liquid_keyed_output(iOutput)
 *     cpdef double saturated_vapor_keyed_output(self, parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         """ Get a trivial output for the saturated vapor :cpapi:`CoolProp::AbstractState::saturated_vapor_keyed_output(parameters key)` """
 *         return self.thisptr.saturated_vapor_keyed_output(iOutput)
 */

  /* 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("CoolProp.CoolProp.AbstractState.saturated_vapor_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_89saturated_vapor_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_88saturated_vapor_keyed_output[] = " Get a trivial output for the saturated vapor :cpapi:`CoolProp::AbstractState::saturated_vapor_keyed_output(parameters key)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_89saturated_vapor_keyed_output(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput) {
  CoolProp::parameters __pyx_v_iOutput;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("saturated_vapor_keyed_output (wrapper)", 0);
  assert(__pyx_arg_iOutput); {
    __pyx_v_iOutput = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_arg_iOutput)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 233, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.saturated_vapor_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_88saturated_vapor_keyed_output(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((CoolProp::parameters)__pyx_v_iOutput));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_88saturated_vapor_keyed_output(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("saturated_vapor_keyed_output", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_vapor_keyed_output(__pyx_v_self, __pyx_v_iOutput, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 233, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.saturated_vapor_keyed_output", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":237
 *         return self.thisptr.saturated_vapor_keyed_output(iOutput)
 * 
 *     cpdef double T(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T(void)` """
 *         return self.thisptr.T()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_91T(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_T(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("T", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 237, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_91T)) {
        __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(2, 237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 237, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":239
 *     cpdef double T(self) except *:
 *         """ Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T(void)` """
 *         return self.thisptr.T()             # <<<<<<<<<<<<<<
 *     cpdef double p(self) except *:
 *         """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->T();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 239, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":237
 *         return self.thisptr.saturated_vapor_keyed_output(iOutput)
 * 
 *     cpdef double T(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T(void)` """
 *         return self.thisptr.T()
 */

  /* 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("CoolProp.CoolProp.AbstractState.T", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_91T(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_90T[] = " Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_91T(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("T (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_90T(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_90T(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("T", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_T(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 237, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.T", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":240
 *         """ Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T(void)` """
 *         return self.thisptr.T()
 *     cpdef double p(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` """
 *         return self.thisptr.p()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_93p(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_p(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("p", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 240, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_93p)) {
        __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(2, 240, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 240, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":242
 *     cpdef double p(self) except *:
 *         """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` """
 *         return self.thisptr.p()             # <<<<<<<<<<<<<<
 *     cpdef double Q(self) except *:
 *         """ Get the vapor quality in mol/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Q(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->p();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 242, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":240
 *         """ Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T(void)` """
 *         return self.thisptr.T()
 *     cpdef double p(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` """
 *         return self.thisptr.p()
 */

  /* 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("CoolProp.CoolProp.AbstractState.p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_93p(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_92p[] = " Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_93p(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("p (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_92p(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_92p(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("p", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_p(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 240, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 240, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":243
 *         """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` """
 *         return self.thisptr.p()
 *     cpdef double Q(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the vapor quality in mol/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Q(void)` """
 *         return self.thisptr.Q()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_95Q(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Q(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("Q", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Q); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_95Q)) {
        __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(2, 243, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 243, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":245
 *     cpdef double Q(self) except *:
 *         """ Get the vapor quality in mol/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Q(void)` """
 *         return self.thisptr.Q()             # <<<<<<<<<<<<<<
 *     cpdef double rhomolar(self) except *:
 *         """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->Q();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 245, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":243
 *         """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` """
 *         return self.thisptr.p()
 *     cpdef double Q(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the vapor quality in mol/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Q(void)` """
 *         return self.thisptr.Q()
 */

  /* 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("CoolProp.CoolProp.AbstractState.Q", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_95Q(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_94Q[] = " Get the vapor quality in mol/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Q(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_95Q(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Q (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_94Q(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_94Q(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Q", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_Q(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 243, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.Q", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":246
 *         """ Get the vapor quality in mol/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Q(void)` """
 *         return self.thisptr.Q()
 *     cpdef double rhomolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` """
 *         return self.thisptr.rhomolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_97rhomolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("rhomolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rhomolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_97rhomolar)) {
        __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(2, 246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 246, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":248
 *     cpdef double rhomolar(self) except *:
 *         """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` """
 *         return self.thisptr.rhomolar()             # <<<<<<<<<<<<<<
 *     cpdef double rhomass(self) except *:
 *         """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->rhomolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 248, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":246
 *         """ Get the vapor quality in mol/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Q(void)` """
 *         return self.thisptr.Q()
 *     cpdef double rhomolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` """
 *         return self.thisptr.rhomolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.rhomolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_97rhomolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_96rhomolar[] = " Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_97rhomolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rhomolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_96rhomolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_96rhomolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("rhomolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 246, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.rhomolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":249
 *         """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` """
 *         return self.thisptr.rhomolar()
 *     cpdef double rhomass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` """
 *         return self.thisptr.rhomass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_99rhomass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("rhomass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rhomass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 249, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_99rhomass)) {
        __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(2, 249, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 249, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":251
 *     cpdef double rhomass(self) except *:
 *         """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` """
 *         return self.thisptr.rhomass()             # <<<<<<<<<<<<<<
 *     cpdef double hmolar(self) except *:
 *         """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->rhomass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 251, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":249
 *         """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` """
 *         return self.thisptr.rhomolar()
 *     cpdef double rhomass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` """
 *         return self.thisptr.rhomass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.rhomass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_99rhomass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_98rhomass[] = " Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_99rhomass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rhomass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_98rhomass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_98rhomass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("rhomass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 249, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.rhomass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":252
 *         """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` """
 *         return self.thisptr.rhomass()
 *     cpdef double hmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` """
 *         return self.thisptr.hmolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_101hmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("hmolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hmolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_101hmolar)) {
        __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(2, 252, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 252, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":254
 *     cpdef double hmolar(self) except *:
 *         """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` """
 *         return self.thisptr.hmolar()             # <<<<<<<<<<<<<<
 *     cpdef double hmass(self) except *:
 *         """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->hmolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 254, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":252
 *         """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` """
 *         return self.thisptr.rhomass()
 *     cpdef double hmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` """
 *         return self.thisptr.hmolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.hmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_101hmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_100hmolar[] = " Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_101hmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hmolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_100hmolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_100hmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("hmolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 252, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.hmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":255
 *         """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` """
 *         return self.thisptr.hmolar()
 *     cpdef double hmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` """
 *         return self.thisptr.hmass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_103hmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("hmass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hmass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_103hmass)) {
        __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(2, 255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 255, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":257
 *     cpdef double hmass(self) except *:
 *         """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` """
 *         return self.thisptr.hmass()             # <<<<<<<<<<<<<<
 *     cpdef double umolar(self) except *:
 *         """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->hmass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 257, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":255
 *         """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` """
 *         return self.thisptr.hmolar()
 *     cpdef double hmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` """
 *         return self.thisptr.hmass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.hmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_103hmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_102hmass[] = " Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_103hmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hmass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_102hmass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_102hmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("hmass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 255, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.hmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":258
 *         """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` """
 *         return self.thisptr.hmass()
 *     cpdef double umolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` """
 *         return self.thisptr.umolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_105umolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("umolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_umolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_105umolar)) {
        __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(2, 258, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 258, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":260
 *     cpdef double umolar(self) except *:
 *         """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` """
 *         return self.thisptr.umolar()             # <<<<<<<<<<<<<<
 *     cpdef double umass(self) except *:
 *         """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->umolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 260, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":258
 *         """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` """
 *         return self.thisptr.hmass()
 *     cpdef double umolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` """
 *         return self.thisptr.umolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.umolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_105umolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_104umolar[] = " Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_105umolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("umolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_104umolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_104umolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("umolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 258, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.umolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":261
 *         """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` """
 *         return self.thisptr.umolar()
 *     cpdef double umass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` """
 *         return self.thisptr.umass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_107umass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("umass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_umass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 261, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_107umass)) {
        __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(2, 261, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 261, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":263
 *     cpdef double umass(self) except *:
 *         """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` """
 *         return self.thisptr.umass()             # <<<<<<<<<<<<<<
 *     cpdef double smolar(self) except *:
 *         """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->umass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 263, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":261
 *         """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` """
 *         return self.thisptr.umolar()
 *     cpdef double umass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` """
 *         return self.thisptr.umass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.umass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_107umass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_106umass[] = " Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_107umass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("umass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_106umass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_106umass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("umass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_umass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 261, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.umass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":264
 *         """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` """
 *         return self.thisptr.umass()
 *     cpdef double smolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` """
 *         return self.thisptr.smolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_109smolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("smolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_smolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_109smolar)) {
        __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(2, 264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 264, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":266
 *     cpdef double smolar(self) except *:
 *         """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` """
 *         return self.thisptr.smolar()             # <<<<<<<<<<<<<<
 *     cpdef double smass(self) except *:
 *         """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->smolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 266, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":264
 *         """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` """
 *         return self.thisptr.umass()
 *     cpdef double smolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` """
 *         return self.thisptr.smolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.smolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_109smolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_108smolar[] = " Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_109smolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("smolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_108smolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_108smolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("smolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 264, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.smolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":267
 *         """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` """
 *         return self.thisptr.smolar()
 *     cpdef double smass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` """
 *         return self.thisptr.smass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_111smass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("smass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_smass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 267, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_111smass)) {
        __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(2, 267, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 267, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":269
 *     cpdef double smass(self) except *:
 *         """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` """
 *         return self.thisptr.smass()             # <<<<<<<<<<<<<<
 *     cpdef double cpmolar(self) except *:
 *         """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->smass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 269, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":267
 *         """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` """
 *         return self.thisptr.smolar()
 *     cpdef double smass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` """
 *         return self.thisptr.smass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.smass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_111smass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_110smass[] = " Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_111smass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("smass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_110smass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_110smass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("smass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_smass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 267, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.smass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":270
 *         """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` """
 *         return self.thisptr.smass()
 *     cpdef double cpmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` """
 *         return self.thisptr.cpmolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_113cpmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("cpmolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cpmolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 270, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_113cpmolar)) {
        __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(2, 270, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 270, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":272
 *     cpdef double cpmolar(self) except *:
 *         """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` """
 *         return self.thisptr.cpmolar()             # <<<<<<<<<<<<<<
 *     cpdef double cpmass(self) except *:
 *         """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->cpmolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 272, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":270
 *         """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` """
 *         return self.thisptr.smass()
 *     cpdef double cpmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` """
 *         return self.thisptr.cpmolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.cpmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_113cpmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_112cpmolar[] = " Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_113cpmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cpmolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_112cpmolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_112cpmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("cpmolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 270, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.cpmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":273
 *         """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` """
 *         return self.thisptr.cpmolar()
 *     cpdef double cpmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` """
 *         return self.thisptr.cpmass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_115cpmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("cpmass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cpmass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 273, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_115cpmass)) {
        __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(2, 273, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 273, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":275
 *     cpdef double cpmass(self) except *:
 *         """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` """
 *         return self.thisptr.cpmass()             # <<<<<<<<<<<<<<
 *     cpdef double cp0molar(self) except *:
 *         """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->cpmass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 275, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":273
 *         """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` """
 *         return self.thisptr.cpmolar()
 *     cpdef double cpmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` """
 *         return self.thisptr.cpmass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.cpmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_115cpmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_114cpmass[] = " Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_115cpmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cpmass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_114cpmass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_114cpmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("cpmass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 273, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.cpmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":276
 *         """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` """
 *         return self.thisptr.cpmass()
 *     cpdef double cp0molar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` """
 *         return self.thisptr.cp0molar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_117cp0molar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0molar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("cp0molar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cp0molar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 276, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_117cp0molar)) {
        __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(2, 276, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 276, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":278
 *     cpdef double cp0molar(self) except *:
 *         """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` """
 *         return self.thisptr.cp0molar()             # <<<<<<<<<<<<<<
 *     cpdef double cp0mass(self) except *:
 *         """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->cp0molar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 278, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":276
 *         """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` """
 *         return self.thisptr.cpmass()
 *     cpdef double cp0molar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` """
 *         return self.thisptr.cp0molar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.cp0molar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_117cp0molar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_116cp0molar[] = " Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_117cp0molar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cp0molar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_116cp0molar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_116cp0molar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("cp0molar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0molar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 276, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.cp0molar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":279
 *         """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` """
 *         return self.thisptr.cp0molar()
 *     cpdef double cp0mass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` """
 *         return self.thisptr.cp0mass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_119cp0mass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("cp0mass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cp0mass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_119cp0mass)) {
        __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(2, 279, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 279, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":281
 *     cpdef double cp0mass(self) except *:
 *         """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` """
 *         return self.thisptr.cp0mass()             # <<<<<<<<<<<<<<
 *     cpdef double cvmolar(self) except *:
 *         """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->cp0mass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 281, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":279
 *         """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` """
 *         return self.thisptr.cp0molar()
 *     cpdef double cp0mass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` """
 *         return self.thisptr.cp0mass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.cp0mass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_119cp0mass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_118cp0mass[] = " Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_119cp0mass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cp0mass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_118cp0mass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_118cp0mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("cp0mass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0mass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 279, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.cp0mass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":282
 *         """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` """
 *         return self.thisptr.cp0mass()
 *     cpdef double cvmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` """
 *         return self.thisptr.cvmolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_121cvmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("cvmolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cvmolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_121cvmolar)) {
        __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(2, 282, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 282, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":284
 *     cpdef double cvmolar(self) except *:
 *         """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` """
 *         return self.thisptr.cvmolar()             # <<<<<<<<<<<<<<
 *     cpdef double cvmass(self) except *:
 *         """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->cvmolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 284, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":282
 *         """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` """
 *         return self.thisptr.cp0mass()
 *     cpdef double cvmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` """
 *         return self.thisptr.cvmolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.cvmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_121cvmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_120cvmolar[] = " Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_121cvmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cvmolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_120cvmolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_120cvmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("cvmolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 282, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.cvmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":285
 *         """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` """
 *         return self.thisptr.cvmolar()
 *     cpdef double cvmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` """
 *         return self.thisptr.cvmass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_123cvmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("cvmass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cvmass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 285, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_123cvmass)) {
        __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(2, 285, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 285, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":287
 *     cpdef double cvmass(self) except *:
 *         """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` """
 *         return self.thisptr.cvmass()             # <<<<<<<<<<<<<<
 *     cpdef double gibbsmass(self) except *:
 *         """ Get the mass-specific Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->cvmass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 287, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":285
 *         """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` """
 *         return self.thisptr.cvmolar()
 *     cpdef double cvmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` """
 *         return self.thisptr.cvmass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.cvmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_123cvmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_122cvmass[] = " Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_123cvmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cvmass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_122cvmass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_122cvmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("cvmass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 285, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.cvmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":288
 *         """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` """
 *         return self.thisptr.cvmass()
 *     cpdef double gibbsmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass(void)` """
 *         return self.thisptr.gibbsmass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_125gibbsmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("gibbsmass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gibbsmass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 288, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_125gibbsmass)) {
        __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(2, 288, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 288, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":290
 *     cpdef double gibbsmass(self) except *:
 *         """ Get the mass-specific Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass(void)` """
 *         return self.thisptr.gibbsmass()             # <<<<<<<<<<<<<<
 *     cpdef double gibbsmolar(self) except *:
 *         """ Get the mole-specific Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->gibbsmass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 290, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":288
 *         """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` """
 *         return self.thisptr.cvmass()
 *     cpdef double gibbsmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass(void)` """
 *         return self.thisptr.gibbsmass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.gibbsmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_125gibbsmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_124gibbsmass[] = " Get the mass-specific Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_125gibbsmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gibbsmass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_124gibbsmass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_124gibbsmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("gibbsmass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 288, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.gibbsmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":291
 *         """ Get the mass-specific Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass(void)` """
 *         return self.thisptr.gibbsmass()
 *     cpdef double gibbsmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar(void)` """
 *         return self.thisptr.gibbsmolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_127gibbsmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("gibbsmolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gibbsmolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_127gibbsmolar)) {
        __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(2, 291, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 291, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":293
 *     cpdef double gibbsmolar(self) except *:
 *         """ Get the mole-specific Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar(void)` """
 *         return self.thisptr.gibbsmolar()             # <<<<<<<<<<<<<<
 *     cpdef double helmholtzmass(self) except *:
 *         """ Get the mass-specific Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->gibbsmolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 293, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":291
 *         """ Get the mass-specific Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass(void)` """
 *         return self.thisptr.gibbsmass()
 *     cpdef double gibbsmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar(void)` """
 *         return self.thisptr.gibbsmolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.gibbsmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_127gibbsmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_126gibbsmolar[] = " Get the mole-specific Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_127gibbsmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gibbsmolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_126gibbsmolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_126gibbsmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("gibbsmolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 291, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.gibbsmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":294
 *         """ Get the mole-specific Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar(void)` """
 *         return self.thisptr.gibbsmolar()
 *     cpdef double helmholtzmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass(void)` """
 *         return self.thisptr.helmholtzmass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_129helmholtzmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("helmholtzmass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_helmholtzmass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_129helmholtzmass)) {
        __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(2, 294, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 294, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":296
 *     cpdef double helmholtzmass(self) except *:
 *         """ Get the mass-specific Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass(void)` """
 *         return self.thisptr.helmholtzmass()             # <<<<<<<<<<<<<<
 *     cpdef double helmholtzmolar(self) except *:
 *         """ Get the mole-specific Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->helmholtzmass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 296, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":294
 *         """ Get the mole-specific Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar(void)` """
 *         return self.thisptr.gibbsmolar()
 *     cpdef double helmholtzmass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass(void)` """
 *         return self.thisptr.helmholtzmass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.helmholtzmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_129helmholtzmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_128helmholtzmass[] = " Get the mass-specific Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_129helmholtzmass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("helmholtzmass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_128helmholtzmass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_128helmholtzmass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("helmholtzmass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 294, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.helmholtzmass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":297
 *         """ Get the mass-specific Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass(void)` """
 *         return self.thisptr.helmholtzmass()
 *     cpdef double helmholtzmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar(void)` """
 *         return self.thisptr.helmholtzmolar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_131helmholtzmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("helmholtzmolar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_helmholtzmolar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 297, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_131helmholtzmolar)) {
        __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(2, 297, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 297, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":299
 *     cpdef double helmholtzmolar(self) except *:
 *         """ Get the mole-specific Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar(void)` """
 *         return self.thisptr.helmholtzmolar()             # <<<<<<<<<<<<<<
 *     cpdef double tau(self) except *:
 *         """ Get the reciprocal reduced temperature - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tau(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->helmholtzmolar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 299, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":297
 *         """ Get the mass-specific Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass(void)` """
 *         return self.thisptr.helmholtzmass()
 *     cpdef double helmholtzmolar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar(void)` """
 *         return self.thisptr.helmholtzmolar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.helmholtzmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_131helmholtzmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_130helmholtzmolar[] = " Get the mole-specific Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_131helmholtzmolar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("helmholtzmolar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_130helmholtzmolar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_130helmholtzmolar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("helmholtzmolar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 297, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.helmholtzmolar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":300
 *         """ Get the mole-specific Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar(void)` """
 *         return self.thisptr.helmholtzmolar()
 *     cpdef double tau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the reciprocal reduced temperature - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tau(void)` """
 *         return self.thisptr.tau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_133tau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_tau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("tau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_tau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_133tau)) {
        __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(2, 300, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 300, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":302
 *     cpdef double tau(self) except *:
 *         """ Get the reciprocal reduced temperature - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tau(void)` """
 *         return self.thisptr.tau()             # <<<<<<<<<<<<<<
 *     cpdef double delta(self) except *:
 *         """ Get the reduced density - wrapper of c++ function :cpapi:`CoolProp::AbstractState::delta(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->tau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 302, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":300
 *         """ Get the mole-specific Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar(void)` """
 *         return self.thisptr.helmholtzmolar()
 *     cpdef double tau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the reciprocal reduced temperature - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tau(void)` """
 *         return self.thisptr.tau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_133tau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_132tau[] = " Get the reciprocal reduced temperature - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tau(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_133tau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_132tau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_132tau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("tau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_tau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 300, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.tau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":303
 *         """ Get the reciprocal reduced temperature - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tau(void)` """
 *         return self.thisptr.tau()
 *     cpdef double delta(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the reduced density - wrapper of c++ function :cpapi:`CoolProp::AbstractState::delta(void)` """
 *         return self.thisptr.delta()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_135delta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_delta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("delta", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_135delta)) {
        __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(2, 303, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 303, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":305
 *     cpdef double delta(self) except *:
 *         """ Get the reduced density - wrapper of c++ function :cpapi:`CoolProp::AbstractState::delta(void)` """
 *         return self.thisptr.delta()             # <<<<<<<<<<<<<<
 *     cpdef double speed_sound(self) except *:
 *         """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->delta();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 305, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":303
 *         """ Get the reciprocal reduced temperature - wrapper of c++ function :cpapi:`CoolProp::AbstractState::tau(void)` """
 *         return self.thisptr.tau()
 *     cpdef double delta(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the reduced density - wrapper of c++ function :cpapi:`CoolProp::AbstractState::delta(void)` """
 *         return self.thisptr.delta()
 */

  /* 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("CoolProp.CoolProp.AbstractState.delta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_135delta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_134delta[] = " Get the reduced density - wrapper of c++ function :cpapi:`CoolProp::AbstractState::delta(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_135delta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("delta (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_134delta(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_134delta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("delta", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_delta(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 303, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.delta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":306
 *         """ Get the reduced density - wrapper of c++ function :cpapi:`CoolProp::AbstractState::delta(void)` """
 *         return self.thisptr.delta()
 *     cpdef double speed_sound(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` """
 *         return self.thisptr.speed_sound()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_137speed_sound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("speed_sound", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_speed_sound); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 306, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_137speed_sound)) {
        __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(2, 306, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 306, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":308
 *     cpdef double speed_sound(self) except *:
 *         """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` """
 *         return self.thisptr.speed_sound()             # <<<<<<<<<<<<<<
 *     cpdef double molar_mass(self) except *:
 *         """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->speed_sound();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 308, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":306
 *         """ Get the reduced density - wrapper of c++ function :cpapi:`CoolProp::AbstractState::delta(void)` """
 *         return self.thisptr.delta()
 *     cpdef double speed_sound(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` """
 *         return self.thisptr.speed_sound()
 */

  /* 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("CoolProp.CoolProp.AbstractState.speed_sound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_137speed_sound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_136speed_sound[] = " Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_137speed_sound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("speed_sound (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_136speed_sound(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_136speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("speed_sound", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_speed_sound(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 306, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.speed_sound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":309
 *         """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` """
 *         return self.thisptr.speed_sound()
 *     cpdef double molar_mass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` """
 *         return self.thisptr.molar_mass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_139molar_mass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_molar_mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("molar_mass", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_molar_mass); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_139molar_mass)) {
        __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(2, 309, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 309, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":311
 *     cpdef double molar_mass(self) except *:
 *         """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` """
 *         return self.thisptr.molar_mass()             # <<<<<<<<<<<<<<
 *     cpdef double acentric_factor(self) except *:
 *         """ Get the acentric factor - wrapper of c++ function :cpapi:`CoolProp::AbstractState::acentric_factor(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->molar_mass();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 311, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":309
 *         """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` """
 *         return self.thisptr.speed_sound()
 *     cpdef double molar_mass(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` """
 *         return self.thisptr.molar_mass()
 */

  /* 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("CoolProp.CoolProp.AbstractState.molar_mass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_139molar_mass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_138molar_mass[] = " Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_139molar_mass(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("molar_mass (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_138molar_mass(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_138molar_mass(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("molar_mass", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_molar_mass(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 309, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.molar_mass", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":312
 *         """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` """
 *         return self.thisptr.molar_mass()
 *     cpdef double acentric_factor(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the acentric factor - wrapper of c++ function :cpapi:`CoolProp::AbstractState::acentric_factor(void)` """
 *         return self.thisptr.acentric_factor()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_141acentric_factor(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_acentric_factor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("acentric_factor", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_acentric_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_141acentric_factor)) {
        __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(2, 312, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 312, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":314
 *     cpdef double acentric_factor(self) except *:
 *         """ Get the acentric factor - wrapper of c++ function :cpapi:`CoolProp::AbstractState::acentric_factor(void)` """
 *         return self.thisptr.acentric_factor()             # <<<<<<<<<<<<<<
 *     cpdef double gas_constant(self) except *:
 *         """ Get the gas constant in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gas_constant(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->acentric_factor();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 314, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":312
 *         """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` """
 *         return self.thisptr.molar_mass()
 *     cpdef double acentric_factor(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the acentric factor - wrapper of c++ function :cpapi:`CoolProp::AbstractState::acentric_factor(void)` """
 *         return self.thisptr.acentric_factor()
 */

  /* 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("CoolProp.CoolProp.AbstractState.acentric_factor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_141acentric_factor(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_140acentric_factor[] = " Get the acentric factor - wrapper of c++ function :cpapi:`CoolProp::AbstractState::acentric_factor(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_141acentric_factor(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("acentric_factor (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_140acentric_factor(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_140acentric_factor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("acentric_factor", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_acentric_factor(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 312, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.acentric_factor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":315
 *         """ Get the acentric factor - wrapper of c++ function :cpapi:`CoolProp::AbstractState::acentric_factor(void)` """
 *         return self.thisptr.acentric_factor()
 *     cpdef double gas_constant(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the gas constant in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gas_constant(void)` """
 *         return self.thisptr.gas_constant()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_143gas_constant(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gas_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("gas_constant", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gas_constant); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_143gas_constant)) {
        __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(2, 315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 315, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":317
 *     cpdef double gas_constant(self) except *:
 *         """ Get the gas constant in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gas_constant(void)` """
 *         return self.thisptr.gas_constant()             # <<<<<<<<<<<<<<
 *     cpdef double viscosity(self) except *:
 *         """ Get the viscosity in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->gas_constant();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 317, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":315
 *         """ Get the acentric factor - wrapper of c++ function :cpapi:`CoolProp::AbstractState::acentric_factor(void)` """
 *         return self.thisptr.acentric_factor()
 *     cpdef double gas_constant(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the gas constant in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gas_constant(void)` """
 *         return self.thisptr.gas_constant()
 */

  /* 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("CoolProp.CoolProp.AbstractState.gas_constant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_143gas_constant(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_142gas_constant[] = " Get the gas constant in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gas_constant(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_143gas_constant(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gas_constant (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_142gas_constant(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_142gas_constant(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("gas_constant", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_gas_constant(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 315, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.gas_constant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":318
 *         """ Get the gas constant in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gas_constant(void)` """
 *         return self.thisptr.gas_constant()
 *     cpdef double viscosity(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the viscosity in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity(void)` """
 *         return self.thisptr.viscosity()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_145viscosity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("viscosity", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_viscosity); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 318, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_145viscosity)) {
        __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(2, 318, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 318, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":320
 *     cpdef double viscosity(self) except *:
 *         """ Get the viscosity in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity(void)` """
 *         return self.thisptr.viscosity()             # <<<<<<<<<<<<<<
 *     cpdef double conductivity(self) except *:
 *         """ Get the thermal conductivity in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->viscosity();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 320, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":318
 *         """ Get the gas constant in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gas_constant(void)` """
 *         return self.thisptr.gas_constant()
 *     cpdef double viscosity(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the viscosity in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity(void)` """
 *         return self.thisptr.viscosity()
 */

  /* 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("CoolProp.CoolProp.AbstractState.viscosity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_145viscosity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_144viscosity[] = " Get the viscosity in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_145viscosity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("viscosity (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_144viscosity(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_144viscosity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("viscosity", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 318, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 318, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.viscosity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":321
 *         """ Get the viscosity in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity(void)` """
 *         return self.thisptr.viscosity()
 *     cpdef double conductivity(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the thermal conductivity in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity(void)` """
 *         return self.thisptr.conductivity()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_147conductivity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("conductivity", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conductivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 321, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_147conductivity)) {
        __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(2, 321, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 321, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":323
 *     cpdef double conductivity(self) except *:
 *         """ Get the thermal conductivity in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity(void)` """
 *         return self.thisptr.conductivity()             # <<<<<<<<<<<<<<
 *     cpdef double surface_tension(self) except *:
 *         """ Get the surface tension N/m - wrapper of c++ function :cpapi:`CoolProp::AbstractState::surface_tension(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->conductivity();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 323, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":321
 *         """ Get the viscosity in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity(void)` """
 *         return self.thisptr.viscosity()
 *     cpdef double conductivity(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the thermal conductivity in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity(void)` """
 *         return self.thisptr.conductivity()
 */

  /* 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("CoolProp.CoolProp.AbstractState.conductivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_147conductivity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_146conductivity[] = " Get the thermal conductivity in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_147conductivity(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("conductivity (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_146conductivity(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_146conductivity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("conductivity", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 321, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 321, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.conductivity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":324
 *         """ Get the thermal conductivity in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity(void)` """
 *         return self.thisptr.conductivity()
 *     cpdef double surface_tension(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the surface tension N/m - wrapper of c++ function :cpapi:`CoolProp::AbstractState::surface_tension(void)` """
 *         return self.thisptr.surface_tension()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_149surface_tension(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_surface_tension(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("surface_tension", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_surface_tension); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 324, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_149surface_tension)) {
        __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(2, 324, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 324, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":326
 *     cpdef double surface_tension(self) except *:
 *         """ Get the surface tension N/m - wrapper of c++ function :cpapi:`CoolProp::AbstractState::surface_tension(void)` """
 *         return self.thisptr.surface_tension()             # <<<<<<<<<<<<<<
 *     cpdef double Prandtl(self) except *:
 *         """ Get the Prandtl number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Prandtl(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->surface_tension();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 326, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":324
 *         """ Get the thermal conductivity in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity(void)` """
 *         return self.thisptr.conductivity()
 *     cpdef double surface_tension(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the surface tension N/m - wrapper of c++ function :cpapi:`CoolProp::AbstractState::surface_tension(void)` """
 *         return self.thisptr.surface_tension()
 */

  /* 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("CoolProp.CoolProp.AbstractState.surface_tension", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_149surface_tension(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_148surface_tension[] = " Get the surface tension N/m - wrapper of c++ function :cpapi:`CoolProp::AbstractState::surface_tension(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_149surface_tension(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("surface_tension (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_148surface_tension(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_148surface_tension(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("surface_tension", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_surface_tension(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 324, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.surface_tension", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":327
 *         """ Get the surface tension N/m - wrapper of c++ function :cpapi:`CoolProp::AbstractState::surface_tension(void)` """
 *         return self.thisptr.surface_tension()
 *     cpdef double Prandtl(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the Prandtl number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Prandtl(void)` """
 *         return self.thisptr.Prandtl()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_151Prandtl(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Prandtl(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("Prandtl", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Prandtl); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 327, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_151Prandtl)) {
        __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(2, 327, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 327, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":329
 *     cpdef double Prandtl(self) except *:
 *         """ Get the Prandtl number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Prandtl(void)` """
 *         return self.thisptr.Prandtl()             # <<<<<<<<<<<<<<
 *     cpdef double Bvirial(self) except *:
 *         """ Get the B virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Bvirial(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->Prandtl();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 329, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":327
 *         """ Get the surface tension N/m - wrapper of c++ function :cpapi:`CoolProp::AbstractState::surface_tension(void)` """
 *         return self.thisptr.surface_tension()
 *     cpdef double Prandtl(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the Prandtl number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Prandtl(void)` """
 *         return self.thisptr.Prandtl()
 */

  /* 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("CoolProp.CoolProp.AbstractState.Prandtl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_151Prandtl(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_150Prandtl[] = " Get the Prandtl number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Prandtl(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_151Prandtl(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Prandtl (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_150Prandtl(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_150Prandtl(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Prandtl", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_Prandtl(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 327, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.Prandtl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":330
 *         """ Get the Prandtl number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Prandtl(void)` """
 *         return self.thisptr.Prandtl()
 *     cpdef double Bvirial(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the B virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Bvirial(void)` """
 *         return self.thisptr.Bvirial()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_153Bvirial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Bvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("Bvirial", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Bvirial); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 330, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_153Bvirial)) {
        __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(2, 330, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 330, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":332
 *     cpdef double Bvirial(self) except *:
 *         """ Get the B virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Bvirial(void)` """
 *         return self.thisptr.Bvirial()             # <<<<<<<<<<<<<<
 *     cpdef double Cvirial(self) except *:
 *         """ Get the C virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Cvirial(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->Bvirial();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 332, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":330
 *         """ Get the Prandtl number - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Prandtl(void)` """
 *         return self.thisptr.Prandtl()
 *     cpdef double Bvirial(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the B virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Bvirial(void)` """
 *         return self.thisptr.Bvirial()
 */

  /* 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("CoolProp.CoolProp.AbstractState.Bvirial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_153Bvirial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_152Bvirial[] = " Get the B virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Bvirial(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_153Bvirial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Bvirial (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_152Bvirial(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_152Bvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Bvirial", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_Bvirial(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 330, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.Bvirial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":333
 *         """ Get the B virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Bvirial(void)` """
 *         return self.thisptr.Bvirial()
 *     cpdef double Cvirial(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the C virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Cvirial(void)` """
 *         return self.thisptr.Cvirial()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_155Cvirial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_Cvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("Cvirial", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Cvirial); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 333, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_155Cvirial)) {
        __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(2, 333, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 333, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":335
 *     cpdef double Cvirial(self) except *:
 *         """ Get the C virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Cvirial(void)` """
 *         return self.thisptr.Cvirial()             # <<<<<<<<<<<<<<
 *     cpdef double fundamental_derivative_of_gas_dynamics(self) except *:
 *         """ Get the fundamental derivative of gas dynamics - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fundamental_derivative_of_gas_dynamics(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->Cvirial();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 335, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":333
 *         """ Get the B virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Bvirial(void)` """
 *         return self.thisptr.Bvirial()
 *     cpdef double Cvirial(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the C virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Cvirial(void)` """
 *         return self.thisptr.Cvirial()
 */

  /* 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("CoolProp.CoolProp.AbstractState.Cvirial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_155Cvirial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_154Cvirial[] = " Get the C virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Cvirial(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_155Cvirial(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Cvirial (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_154Cvirial(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_154Cvirial(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Cvirial", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_Cvirial(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 333, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.Cvirial", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":336
 *         """ Get the C virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Cvirial(void)` """
 *         return self.thisptr.Cvirial()
 *     cpdef double fundamental_derivative_of_gas_dynamics(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the fundamental derivative of gas dynamics - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fundamental_derivative_of_gas_dynamics(void)` """
 *         return self.thisptr.fundamental_derivative_of_gas_dynamics()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_157fundamental_derivative_of_gas_dynamics(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_fundamental_derivative_of_gas_dynamics(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("fundamental_derivative_of_gas_dynamics", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fundamental_derivative_of_gas_dy); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_157fundamental_derivative_of_gas_dynamics)) {
        __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(2, 336, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 336, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":338
 *     cpdef double fundamental_derivative_of_gas_dynamics(self) except *:
 *         """ Get the fundamental derivative of gas dynamics - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fundamental_derivative_of_gas_dynamics(void)` """
 *         return self.thisptr.fundamental_derivative_of_gas_dynamics()             # <<<<<<<<<<<<<<
 *     cpdef double PIP(self) except *:
 *         """ Get the phase identification parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::PIP` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->fundamental_derivative_of_gas_dynamics();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 338, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":336
 *         """ Get the C virial coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::Cvirial(void)` """
 *         return self.thisptr.Cvirial()
 *     cpdef double fundamental_derivative_of_gas_dynamics(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the fundamental derivative of gas dynamics - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fundamental_derivative_of_gas_dynamics(void)` """
 *         return self.thisptr.fundamental_derivative_of_gas_dynamics()
 */

  /* 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("CoolProp.CoolProp.AbstractState.fundamental_derivative_of_gas_dynamics", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_157fundamental_derivative_of_gas_dynamics(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_156fundamental_derivative_of_gas_dynamics[] = " Get the fundamental derivative of gas dynamics - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fundamental_derivative_of_gas_dynamics(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_157fundamental_derivative_of_gas_dynamics(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fundamental_derivative_of_gas_dynamics (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_156fundamental_derivative_of_gas_dynamics(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_156fundamental_derivative_of_gas_dynamics(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("fundamental_derivative_of_gas_dynamics", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_fundamental_derivative_of_gas_dynamics(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 336, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.fundamental_derivative_of_gas_dynamics", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":339
 *         """ Get the fundamental derivative of gas dynamics - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fundamental_derivative_of_gas_dynamics(void)` """
 *         return self.thisptr.fundamental_derivative_of_gas_dynamics()
 *     cpdef double PIP(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the phase identification parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::PIP` """
 *         return self.thisptr.PIP()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_159PIP(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_PIP(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("PIP", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_PIP); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 339, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_159PIP)) {
        __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(2, 339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 339, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":341
 *     cpdef double PIP(self) except *:
 *         """ Get the phase identification parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::PIP` """
 *         return self.thisptr.PIP()             # <<<<<<<<<<<<<<
 *     cpdef double isobaric_expansion_coefficient(self) except *:
 *         """ Get the isobaric expansion coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isobaric_expansion_coefficient(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->PIP();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 341, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":339
 *         """ Get the fundamental derivative of gas dynamics - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fundamental_derivative_of_gas_dynamics(void)` """
 *         return self.thisptr.fundamental_derivative_of_gas_dynamics()
 *     cpdef double PIP(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the phase identification parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::PIP` """
 *         return self.thisptr.PIP()
 */

  /* 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("CoolProp.CoolProp.AbstractState.PIP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_159PIP(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_158PIP[] = " Get the phase identification parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::PIP` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_159PIP(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("PIP (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_158PIP(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_158PIP(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("PIP", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_PIP(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 339, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.PIP", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":342
 *         """ Get the phase identification parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::PIP` """
 *         return self.thisptr.PIP()
 *     cpdef double isobaric_expansion_coefficient(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the isobaric expansion coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isobaric_expansion_coefficient(void)` """
 *         return self.thisptr.isobaric_expansion_coefficient()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_161isobaric_expansion_coefficient(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_isobaric_expansion_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("isobaric_expansion_coefficient", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isobaric_expansion_coefficient); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 342, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_161isobaric_expansion_coefficient)) {
        __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(2, 342, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 342, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":344
 *     cpdef double isobaric_expansion_coefficient(self) except *:
 *         """ Get the isobaric expansion coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isobaric_expansion_coefficient(void)` """
 *         return self.thisptr.isobaric_expansion_coefficient()             # <<<<<<<<<<<<<<
 *     cpdef double isothermal_compressibility(self) except *:
 *         """ Get the isothermal_compressibility - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isothermal_compressibility(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->isobaric_expansion_coefficient();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 344, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":342
 *         """ Get the phase identification parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::PIP` """
 *         return self.thisptr.PIP()
 *     cpdef double isobaric_expansion_coefficient(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the isobaric expansion coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isobaric_expansion_coefficient(void)` """
 *         return self.thisptr.isobaric_expansion_coefficient()
 */

  /* 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("CoolProp.CoolProp.AbstractState.isobaric_expansion_coefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_161isobaric_expansion_coefficient(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_160isobaric_expansion_coefficient[] = " Get the isobaric expansion coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isobaric_expansion_coefficient(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_161isobaric_expansion_coefficient(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("isobaric_expansion_coefficient (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_160isobaric_expansion_coefficient(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_160isobaric_expansion_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("isobaric_expansion_coefficient", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_isobaric_expansion_coefficient(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 342, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.isobaric_expansion_coefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":345
 *         """ Get the isobaric expansion coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isobaric_expansion_coefficient(void)` """
 *         return self.thisptr.isobaric_expansion_coefficient()
 *     cpdef double isothermal_compressibility(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the isothermal_compressibility - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isothermal_compressibility(void)` """
 *         return self.thisptr.isothermal_compressibility()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_163isothermal_compressibility(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_isothermal_compressibility(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("isothermal_compressibility", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isothermal_compressibility); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 345, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_163isothermal_compressibility)) {
        __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(2, 345, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":347
 *     cpdef double isothermal_compressibility(self) except *:
 *         """ Get the isothermal_compressibility - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isothermal_compressibility(void)` """
 *         return self.thisptr.isothermal_compressibility()             # <<<<<<<<<<<<<<
 *     cpdef double fugacity(self, size_t i) except *:
 *         """ Get the fugacity of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity(std::size_t)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->isothermal_compressibility();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 347, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":345
 *         """ Get the isobaric expansion coefficient - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isobaric_expansion_coefficient(void)` """
 *         return self.thisptr.isobaric_expansion_coefficient()
 *     cpdef double isothermal_compressibility(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the isothermal_compressibility - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isothermal_compressibility(void)` """
 *         return self.thisptr.isothermal_compressibility()
 */

  /* 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("CoolProp.CoolProp.AbstractState.isothermal_compressibility", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_163isothermal_compressibility(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_162isothermal_compressibility[] = " Get the isothermal_compressibility - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isothermal_compressibility(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_163isothermal_compressibility(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("isothermal_compressibility (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_162isothermal_compressibility(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_162isothermal_compressibility(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("isothermal_compressibility", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_isothermal_compressibility(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.isothermal_compressibility", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":348
 *         """ Get the isothermal_compressibility - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isothermal_compressibility(void)` """
 *         return self.thisptr.isothermal_compressibility()
 *     cpdef double fugacity(self, size_t i) except *:             # <<<<<<<<<<<<<<
 *         """ Get the fugacity of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity(std::size_t)` """
 *         return self.thisptr.fugacity(i)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_165fugacity(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  __Pyx_RefNannySetupContext("fugacity", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fugacity); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 348, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_165fugacity)) {
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 348, __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(2, 348, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":350
 *     cpdef double fugacity(self, size_t i) except *:
 *         """ Get the fugacity of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity(std::size_t)` """
 *         return self.thisptr.fugacity(i)             # <<<<<<<<<<<<<<
 *     cpdef double fugacity_coefficient(self, size_t i) except *:
 *         """ Get the fugacity coefficient of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity_coefficient(std::size_t)` """
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->fugacity(__pyx_v_i);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 350, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":348
 *         """ Get the isothermal_compressibility - wrapper of c++ function :cpapi:`CoolProp::AbstractState::isothermal_compressibility(void)` """
 *         return self.thisptr.isothermal_compressibility()
 *     cpdef double fugacity(self, size_t i) except *:             # <<<<<<<<<<<<<<
 *         """ Get the fugacity of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity(std::size_t)` """
 *         return self.thisptr.fugacity(i)
 */

  /* 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("CoolProp.CoolProp.AbstractState.fugacity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_165fugacity(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_164fugacity[] = " Get the fugacity of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity(std::size_t)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_165fugacity(PyObject *__pyx_v_self, PyObject *__pyx_arg_i) {
  size_t __pyx_v_i;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fugacity (wrapper)", 0);
  assert(__pyx_arg_i); {
    __pyx_v_i = __Pyx_PyInt_As_size_t(__pyx_arg_i); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.fugacity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_164fugacity(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((size_t)__pyx_v_i));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_164fugacity(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("fugacity", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity(__pyx_v_self, __pyx_v_i, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.fugacity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":351
 *         """ Get the fugacity of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity(std::size_t)` """
 *         return self.thisptr.fugacity(i)
 *     cpdef double fugacity_coefficient(self, size_t i) except *:             # <<<<<<<<<<<<<<
 *         """ Get the fugacity coefficient of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity_coefficient(std::size_t)` """
 *         return self.thisptr.fugacity_coefficient(i)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_167fugacity_coefficient(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  __Pyx_RefNannySetupContext("fugacity_coefficient", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fugacity_coefficient); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 351, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_167fugacity_coefficient)) {
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 351, __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(2, 351, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":353
 *     cpdef double fugacity_coefficient(self, size_t i) except *:
 *         """ Get the fugacity coefficient of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity_coefficient(std::size_t)` """
 *         return self.thisptr.fugacity_coefficient(i)             # <<<<<<<<<<<<<<
 *     cpdef double chemical_potential(self, size_t i) except *:
 *         """ Get the chemical potential of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::chemical_potential(std::size_t)` """
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->fugacity_coefficient(__pyx_v_i);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 353, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":351
 *         """ Get the fugacity of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity(std::size_t)` """
 *         return self.thisptr.fugacity(i)
 *     cpdef double fugacity_coefficient(self, size_t i) except *:             # <<<<<<<<<<<<<<
 *         """ Get the fugacity coefficient of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity_coefficient(std::size_t)` """
 *         return self.thisptr.fugacity_coefficient(i)
 */

  /* 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("CoolProp.CoolProp.AbstractState.fugacity_coefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_167fugacity_coefficient(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_166fugacity_coefficient[] = " Get the fugacity coefficient of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity_coefficient(std::size_t)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_167fugacity_coefficient(PyObject *__pyx_v_self, PyObject *__pyx_arg_i) {
  size_t __pyx_v_i;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fugacity_coefficient (wrapper)", 0);
  assert(__pyx_arg_i); {
    __pyx_v_i = __Pyx_PyInt_As_size_t(__pyx_arg_i); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.fugacity_coefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_166fugacity_coefficient(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((size_t)__pyx_v_i));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_166fugacity_coefficient(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("fugacity_coefficient", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity_coefficient(__pyx_v_self, __pyx_v_i, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.fugacity_coefficient", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":354
 *         """ Get the fugacity coefficient of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity_coefficient(std::size_t)` """
 *         return self.thisptr.fugacity_coefficient(i)
 *     cpdef double chemical_potential(self, size_t i) except *:             # <<<<<<<<<<<<<<
 *         """ Get the chemical potential of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::chemical_potential(std::size_t)` """
 *         return self.thisptr.chemical_potential(i)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_169chemical_potential(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_chemical_potential(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  __Pyx_RefNannySetupContext("chemical_potential", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_chemical_potential); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_169chemical_potential)) {
        __pyx_t_3 = __Pyx_PyInt_FromSize_t(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 354, __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(2, 354, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":356
 *     cpdef double chemical_potential(self, size_t i) except *:
 *         """ Get the chemical potential of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::chemical_potential(std::size_t)` """
 *         return self.thisptr.chemical_potential(i)             # <<<<<<<<<<<<<<
 * 
 *     cpdef mole_fractions_liquid(self):
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->chemical_potential(__pyx_v_i);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 356, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":354
 *         """ Get the fugacity coefficient of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::fugacity_coefficient(std::size_t)` """
 *         return self.thisptr.fugacity_coefficient(i)
 *     cpdef double chemical_potential(self, size_t i) except *:             # <<<<<<<<<<<<<<
 *         """ Get the chemical potential of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::chemical_potential(std::size_t)` """
 *         return self.thisptr.chemical_potential(i)
 */

  /* 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("CoolProp.CoolProp.AbstractState.chemical_potential", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_169chemical_potential(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_168chemical_potential[] = " Get the chemical potential of the i-th component - wrapper of c++ function :cpapi:`CoolProp::AbstractState::chemical_potential(std::size_t)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_169chemical_potential(PyObject *__pyx_v_self, PyObject *__pyx_arg_i) {
  size_t __pyx_v_i;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chemical_potential (wrapper)", 0);
  assert(__pyx_arg_i); {
    __pyx_v_i = __Pyx_PyInt_As_size_t(__pyx_arg_i); if (unlikely((__pyx_v_i == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.chemical_potential", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_168chemical_potential(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((size_t)__pyx_v_i));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_168chemical_potential(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, size_t __pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("chemical_potential", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_chemical_potential(__pyx_v_self, __pyx_v_i, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.chemical_potential", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":358
 *         return self.thisptr.chemical_potential(i)
 * 
 *     cpdef mole_fractions_liquid(self):             # <<<<<<<<<<<<<<
 *         """ Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid(void)` """
 *         return self.thisptr.mole_fractions_liquid()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_171mole_fractions_liquid(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_liquid(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::vector<__pyx_t_8CoolProp_8typedefs_CoolPropDbl>  __pyx_t_5;
  __Pyx_RefNannySetupContext("mole_fractions_liquid", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mole_fractions_liquid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_171mole_fractions_liquid)) {
        __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(2, 358, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":360
 *     cpdef mole_fractions_liquid(self):
 *         """ Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid(void)` """
 *         return self.thisptr.mole_fractions_liquid()             # <<<<<<<<<<<<<<
 *     cpdef mole_fractions_vapor(self):
 *         """ Get the mole fractions of the vapor phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_vapor(void)` """
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->mole_fractions_liquid();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 360, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":358
 *         return self.thisptr.chemical_potential(i)
 * 
 *     cpdef mole_fractions_liquid(self):             # <<<<<<<<<<<<<<
 *         """ Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid(void)` """
 *         return self.thisptr.mole_fractions_liquid()
 */

  /* 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("CoolProp.CoolProp.AbstractState.mole_fractions_liquid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_171mole_fractions_liquid(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_170mole_fractions_liquid[] = " Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_171mole_fractions_liquid(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mole_fractions_liquid (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_170mole_fractions_liquid(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_170mole_fractions_liquid(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("mole_fractions_liquid", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_liquid(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 358, __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("CoolProp.CoolProp.AbstractState.mole_fractions_liquid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":361
 *         """ Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid(void)` """
 *         return self.thisptr.mole_fractions_liquid()
 *     cpdef mole_fractions_vapor(self):             # <<<<<<<<<<<<<<
 *         """ Get the mole fractions of the vapor phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_vapor(void)` """
 *         return self.thisptr.mole_fractions_vapor()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_173mole_fractions_vapor(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_vapor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::vector<__pyx_t_8CoolProp_8typedefs_CoolPropDbl>  __pyx_t_5;
  __Pyx_RefNannySetupContext("mole_fractions_vapor", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mole_fractions_vapor); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 361, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_173mole_fractions_vapor)) {
        __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(2, 361, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":363
 *     cpdef mole_fractions_vapor(self):
 *         """ Get the mole fractions of the vapor phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_vapor(void)` """
 *         return self.thisptr.mole_fractions_vapor()             # <<<<<<<<<<<<<<
 * 
 *     cpdef tuple true_critical_point(self):
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->mole_fractions_vapor();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 363, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":361
 *         """ Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid(void)` """
 *         return self.thisptr.mole_fractions_liquid()
 *     cpdef mole_fractions_vapor(self):             # <<<<<<<<<<<<<<
 *         """ Get the mole fractions of the vapor phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_vapor(void)` """
 *         return self.thisptr.mole_fractions_vapor()
 */

  /* 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("CoolProp.CoolProp.AbstractState.mole_fractions_vapor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_173mole_fractions_vapor(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_172mole_fractions_vapor[] = " Get the mole fractions of the vapor phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_vapor(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_173mole_fractions_vapor(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mole_fractions_vapor (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_172mole_fractions_vapor(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_172mole_fractions_vapor(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("mole_fractions_vapor", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_vapor(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 361, __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("CoolProp.CoolProp.AbstractState.mole_fractions_vapor", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":365
 *         return self.thisptr.mole_fractions_vapor()
 * 
 *     cpdef tuple true_critical_point(self):             # <<<<<<<<<<<<<<
 *         """ Get the "true" critical point where dp/drho|T = 0 & d2p/drho^2|T = 0 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::true_critical_point` """
 *         cdef double T = 1e99, rho = 1e99
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_175true_critical_point(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_true_critical_point(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_v_T;
  double __pyx_v_rho;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("true_critical_point", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_true_critical_point); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 365, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_175true_critical_point)) {
        __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(2, 365, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(2, 365, __pyx_L1_error)
        __pyx_r = ((PyObject*)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":367
 *     cpdef tuple true_critical_point(self):
 *         """ Get the "true" critical point where dp/drho|T = 0 & d2p/drho^2|T = 0 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::true_critical_point` """
 *         cdef double T = 1e99, rho = 1e99             # <<<<<<<<<<<<<<
 *         self.thisptr.true_critical_point(T, rho)
 *         return T, rho
 */
  __pyx_v_T = 1e99;
  __pyx_v_rho = 1e99;

  /* "AbstractState.pyx":368
 *         """ Get the "true" critical point where dp/drho|T = 0 & d2p/drho^2|T = 0 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::true_critical_point` """
 *         cdef double T = 1e99, rho = 1e99
 *         self.thisptr.true_critical_point(T, rho)             # <<<<<<<<<<<<<<
 *         return T, rho
 *     cpdef dict conformal_state(self, string reference_fluid, CoolPropDbl T, CoolPropDbl rho):
 */
  try {
    __pyx_v_self->thisptr->true_critical_point(__pyx_v_T, __pyx_v_rho);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 368, __pyx_L1_error)
  }

  /* "AbstractState.pyx":369
 *         cdef double T = 1e99, rho = 1e99
 *         self.thisptr.true_critical_point(T, rho)
 *         return T, rho             # <<<<<<<<<<<<<<
 *     cpdef dict conformal_state(self, string reference_fluid, CoolPropDbl T, CoolPropDbl rho):
 *         """ Solve for conformal state used in extended corresponding states - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conformal_state` """
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_rho); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":365
 *         return self.thisptr.mole_fractions_vapor()
 * 
 *     cpdef tuple true_critical_point(self):             # <<<<<<<<<<<<<<
 *         """ Get the "true" critical point where dp/drho|T = 0 & d2p/drho^2|T = 0 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::true_critical_point` """
 *         cdef double T = 1e99, rho = 1e99
 */

  /* 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("CoolProp.CoolProp.AbstractState.true_critical_point", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_175true_critical_point(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_174true_critical_point[] = " Get the \"true\" critical point where dp/drho|T = 0 & d2p/drho^2|T = 0 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::true_critical_point` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_175true_critical_point(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("true_critical_point (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_174true_critical_point(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_174true_critical_point(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("true_critical_point", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_true_critical_point(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 365, __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("CoolProp.CoolProp.AbstractState.true_critical_point", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":370
 *         self.thisptr.true_critical_point(T, rho)
 *         return T, rho
 *     cpdef dict conformal_state(self, string reference_fluid, CoolPropDbl T, CoolPropDbl rho):             # <<<<<<<<<<<<<<
 *         """ Solve for conformal state used in extended corresponding states - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conformal_state` """
 *         cdef CoolPropDbl T0 = T, rho0 = rho
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_177conformal_state(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_conformal_state(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_reference_fluid, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_T, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_rho, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_T0;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_rho0;
  PyObject *__pyx_r = NULL;
  __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;
  PyObject *__pyx_t_9 = NULL;
  __Pyx_RefNannySetupContext("conformal_state", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conformal_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 370, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_177conformal_state)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_reference_fluid); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 370, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 370, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_rho); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 370, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 370, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 370, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 370, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 370, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(2, 370, __pyx_L1_error)
        __pyx_r = ((PyObject*)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":372
 *     cpdef dict conformal_state(self, string reference_fluid, CoolPropDbl T, CoolPropDbl rho):
 *         """ Solve for conformal state used in extended corresponding states - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conformal_state` """
 *         cdef CoolPropDbl T0 = T, rho0 = rho             # <<<<<<<<<<<<<<
 *         self.thisptr.conformal_state(reference_fluid, T0, rho0)
 *         return dict(T = T0, rhomolar = rho0)
 */
  __pyx_v_T0 = __pyx_v_T;
  __pyx_v_rho0 = __pyx_v_rho;

  /* "AbstractState.pyx":373
 *         """ Solve for conformal state used in extended corresponding states - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conformal_state` """
 *         cdef CoolPropDbl T0 = T, rho0 = rho
 *         self.thisptr.conformal_state(reference_fluid, T0, rho0)             # <<<<<<<<<<<<<<
 *         return dict(T = T0, rhomolar = rho0)
 *     cpdef dict conductivity_contributions(self):
 */
  try {
    __pyx_v_self->thisptr->conformal_state(__pyx_v_reference_fluid, __pyx_v_T0, __pyx_v_rho0);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 373, __pyx_L1_error)
  }

  /* "AbstractState.pyx":374
 *         cdef CoolPropDbl T0 = T, rho0 = rho
 *         self.thisptr.conformal_state(reference_fluid, T0, rho0)
 *         return dict(T = T0, rhomolar = rho0)             # <<<<<<<<<<<<<<
 *     cpdef dict conductivity_contributions(self):
 *         """ Retrieve each of the contributions to the conductivity, each in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity_contributions` """
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_T0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_T, __pyx_t_2) < 0) __PYX_ERR(2, 374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_rho0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rhomolar, __pyx_t_2) < 0) __PYX_ERR(2, 374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":370
 *         self.thisptr.true_critical_point(T, rho)
 *         return T, rho
 *     cpdef dict conformal_state(self, string reference_fluid, CoolPropDbl T, CoolPropDbl rho):             # <<<<<<<<<<<<<<
 *         """ Solve for conformal state used in extended corresponding states - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conformal_state` """
 *         cdef CoolPropDbl T0 = T, rho0 = rho
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.conformal_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_177conformal_state(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_176conformal_state[] = " Solve for conformal state used in extended corresponding states - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conformal_state` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_177conformal_state(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_reference_fluid;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_T;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_rho;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("conformal_state (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reference_fluid,&__pyx_n_s_T,&__pyx_n_s_rho,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_reference_fluid)) != 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_T)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("conformal_state", 1, 3, 3, 1); __PYX_ERR(2, 370, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rho)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("conformal_state", 1, 3, 3, 2); __PYX_ERR(2, 370, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "conformal_state") < 0)) __PYX_ERR(2, 370, __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_reference_fluid = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 370, __pyx_L3_error)
    __pyx_v_T = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_T == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 370, __pyx_L3_error)
    __pyx_v_rho = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_rho == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 370, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("conformal_state", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 370, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.conformal_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_176conformal_state(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_reference_fluid, __pyx_v_T, __pyx_v_rho);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_176conformal_state(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_reference_fluid, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_T, __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_rho) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("conformal_state", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_conformal_state(__pyx_v_self, __pyx_v_reference_fluid, __pyx_v_T, __pyx_v_rho, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 370, __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("CoolProp.CoolProp.AbstractState.conformal_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":375
 *         self.thisptr.conformal_state(reference_fluid, T0, rho0)
 *         return dict(T = T0, rhomolar = rho0)
 *     cpdef dict conductivity_contributions(self):             # <<<<<<<<<<<<<<
 *         """ Retrieve each of the contributions to the conductivity, each in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_179conductivity_contributions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_dilute;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_initial_density;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_residual;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_critical;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("conductivity_contributions", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conductivity_contributions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_179conductivity_contributions)) {
        __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(2, 375, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(2, 375, __pyx_L1_error)
        __pyx_r = ((PyObject*)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":377
 *     cpdef dict conductivity_contributions(self):
 *         """ Retrieve each of the contributions to the conductivity, each in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0             # <<<<<<<<<<<<<<
 *         self.thisptr.conductivity_contributions(dilute, initial_density, residual, critical)
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)
 */
  __pyx_v_dilute = 0.0;
  __pyx_v_initial_density = 0.0;
  __pyx_v_residual = 0.0;
  __pyx_v_critical = 0.0;

  /* "AbstractState.pyx":378
 *         """ Retrieve each of the contributions to the conductivity, each in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0
 *         self.thisptr.conductivity_contributions(dilute, initial_density, residual, critical)             # <<<<<<<<<<<<<<
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)
 *     cpdef dict viscosity_contributions(self):
 */
  try {
    __pyx_v_self->thisptr->conductivity_contributions(__pyx_v_dilute, __pyx_v_initial_density, __pyx_v_residual, __pyx_v_critical);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 378, __pyx_L1_error)
  }

  /* "AbstractState.pyx":379
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0
 *         self.thisptr.conductivity_contributions(dilute, initial_density, residual, critical)
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)             # <<<<<<<<<<<<<<
 *     cpdef dict viscosity_contributions(self):
 *         """ Retrieve each of the contributions to the viscosity, each in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity_contributions` """
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dilute); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dilute, __pyx_t_2) < 0) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_initial_density); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_initial_density, __pyx_t_2) < 0) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_residual); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_residual, __pyx_t_2) < 0) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_critical); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_critical, __pyx_t_2) < 0) __PYX_ERR(2, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":375
 *         self.thisptr.conformal_state(reference_fluid, T0, rho0)
 *         return dict(T = T0, rhomolar = rho0)
 *     cpdef dict conductivity_contributions(self):             # <<<<<<<<<<<<<<
 *         """ Retrieve each of the contributions to the conductivity, each in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 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_AddTraceback("CoolProp.CoolProp.AbstractState.conductivity_contributions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_179conductivity_contributions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_178conductivity_contributions[] = " Retrieve each of the contributions to the conductivity, each in W/m/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::conductivity_contributions` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_179conductivity_contributions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("conductivity_contributions (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_178conductivity_contributions(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_178conductivity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("conductivity_contributions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity_contributions(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 375, __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("CoolProp.CoolProp.AbstractState.conductivity_contributions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":380
 *         self.thisptr.conductivity_contributions(dilute, initial_density, residual, critical)
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)
 *     cpdef dict viscosity_contributions(self):             # <<<<<<<<<<<<<<
 *         """ Retrieve each of the contributions to the viscosity, each in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_181viscosity_contributions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_dilute;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_initial_density;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_residual;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_v_critical;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("viscosity_contributions", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_viscosity_contributions); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 380, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_181viscosity_contributions)) {
        __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(2, 380, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(2, 380, __pyx_L1_error)
        __pyx_r = ((PyObject*)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":382
 *     cpdef dict viscosity_contributions(self):
 *         """ Retrieve each of the contributions to the viscosity, each in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0             # <<<<<<<<<<<<<<
 *         self.thisptr.viscosity_contributions(dilute, initial_density, residual, critical)
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)
 */
  __pyx_v_dilute = 0.0;
  __pyx_v_initial_density = 0.0;
  __pyx_v_residual = 0.0;
  __pyx_v_critical = 0.0;

  /* "AbstractState.pyx":383
 *         """ Retrieve each of the contributions to the viscosity, each in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0
 *         self.thisptr.viscosity_contributions(dilute, initial_density, residual, critical)             # <<<<<<<<<<<<<<
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)
 * 
 */
  try {
    __pyx_v_self->thisptr->viscosity_contributions(__pyx_v_dilute, __pyx_v_initial_density, __pyx_v_residual, __pyx_v_critical);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 383, __pyx_L1_error)
  }

  /* "AbstractState.pyx":384
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 0
 *         self.thisptr.viscosity_contributions(dilute, initial_density, residual, critical)
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dilute); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dilute, __pyx_t_2) < 0) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_initial_density); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_initial_density, __pyx_t_2) < 0) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_residual); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_residual, __pyx_t_2) < 0) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_critical); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_critical, __pyx_t_2) < 0) __PYX_ERR(2, 384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":380
 *         self.thisptr.conductivity_contributions(dilute, initial_density, residual, critical)
 *         return dict(dilute = dilute, initial_density = initial_density, residual = residual, critical = critical)
 *     cpdef dict viscosity_contributions(self):             # <<<<<<<<<<<<<<
 *         """ Retrieve each of the contributions to the viscosity, each in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity_contributions` """
 *         cdef CoolPropDbl dilute = 0, initial_density = 0, residual = 0, critical = 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_AddTraceback("CoolProp.CoolProp.AbstractState.viscosity_contributions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_181viscosity_contributions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_180viscosity_contributions[] = " Retrieve each of the contributions to the viscosity, each in Pa-s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::viscosity_contributions` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_181viscosity_contributions(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("viscosity_contributions (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_180viscosity_contributions(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_180viscosity_contributions(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("viscosity_contributions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity_contributions(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 380, __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("CoolProp.CoolProp.AbstractState.viscosity_contributions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":387
 * 
 * 
 *     cpdef double helmholtzmolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar_excess(void)` """
 *         return self.thisptr.helmholtzmolar_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_183helmholtzmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("helmholtzmolar_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_helmholtzmolar_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 387, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_183helmholtzmolar_excess)) {
        __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(2, 387, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 387, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":389
 *     cpdef double helmholtzmolar_excess(self) except *:
 *         """ Get the mole-specific excess Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar_excess(void)` """
 *         return self.thisptr.helmholtzmolar_excess()             # <<<<<<<<<<<<<<
 *     cpdef double helmholtzmass_excess(self) except *:
 *         """ Get the mass-specific excess Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->helmholtzmolar_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 389, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":387
 * 
 * 
 *     cpdef double helmholtzmolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar_excess(void)` """
 *         return self.thisptr.helmholtzmolar_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.helmholtzmolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_183helmholtzmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_182helmholtzmolar_excess[] = " Get the mole-specific excess Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_183helmholtzmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("helmholtzmolar_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_182helmholtzmolar_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_182helmholtzmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("helmholtzmolar_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 387, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.helmholtzmolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":390
 *         """ Get the mole-specific excess Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar_excess(void)` """
 *         return self.thisptr.helmholtzmolar_excess()
 *     cpdef double helmholtzmass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass_excess(void)` """
 *         return self.thisptr.helmholtzmass_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_185helmholtzmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("helmholtzmass_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_helmholtzmass_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 390, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_185helmholtzmass_excess)) {
        __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(2, 390, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 390, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":392
 *     cpdef double helmholtzmass_excess(self) except *:
 *         """ Get the mass-specific excess Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass_excess(void)` """
 *         return self.thisptr.helmholtzmass_excess()             # <<<<<<<<<<<<<<
 *     cpdef double gibbsmolar_excess(self) except *:
 *         """ Get the mole-specific excess Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->helmholtzmass_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 392, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":390
 *         """ Get the mole-specific excess Helmholtz energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmolar_excess(void)` """
 *         return self.thisptr.helmholtzmolar_excess()
 *     cpdef double helmholtzmass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass_excess(void)` """
 *         return self.thisptr.helmholtzmass_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.helmholtzmass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_185helmholtzmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_184helmholtzmass_excess[] = " Get the mass-specific excess Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_185helmholtzmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("helmholtzmass_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_184helmholtzmass_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_184helmholtzmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("helmholtzmass_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 390, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.helmholtzmass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":393
 *         """ Get the mass-specific excess Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass_excess(void)` """
 *         return self.thisptr.helmholtzmass_excess()
 *     cpdef double gibbsmolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar_excess(void)` """
 *         return self.thisptr.gibbsmolar_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_187gibbsmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("gibbsmolar_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gibbsmolar_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 393, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_187gibbsmolar_excess)) {
        __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(2, 393, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 393, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":395
 *     cpdef double gibbsmolar_excess(self) except *:
 *         """ Get the mole-specific excess Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar_excess(void)` """
 *         return self.thisptr.gibbsmolar_excess()             # <<<<<<<<<<<<<<
 *     cpdef double gibbsmass_excess(self) except *:
 *         """ Get the mass-specific excess Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->gibbsmolar_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 395, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":393
 *         """ Get the mass-specific excess Helmholtz energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::helmholtzmass_excess(void)` """
 *         return self.thisptr.helmholtzmass_excess()
 *     cpdef double gibbsmolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar_excess(void)` """
 *         return self.thisptr.gibbsmolar_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.gibbsmolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_187gibbsmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_186gibbsmolar_excess[] = " Get the mole-specific excess Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_187gibbsmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gibbsmolar_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_186gibbsmolar_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_186gibbsmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("gibbsmolar_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 393, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.gibbsmolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":396
 *         """ Get the mole-specific excess Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar_excess(void)` """
 *         return self.thisptr.gibbsmolar_excess()
 *     cpdef double gibbsmass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass_excess(void)` """
 *         return self.thisptr.gibbsmass_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_189gibbsmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("gibbsmass_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gibbsmass_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_189gibbsmass_excess)) {
        __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(2, 396, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 396, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":398
 *     cpdef double gibbsmass_excess(self) except *:
 *         """ Get the mass-specific excess Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass_excess(void)` """
 *         return self.thisptr.gibbsmass_excess()             # <<<<<<<<<<<<<<
 *     cpdef double umolar_excess(self) except *:
 *         """ Get the mole-specific excess internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->gibbsmass_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 398, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":396
 *         """ Get the mole-specific excess Gibbs energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmolar_excess(void)` """
 *         return self.thisptr.gibbsmolar_excess()
 *     cpdef double gibbsmass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass_excess(void)` """
 *         return self.thisptr.gibbsmass_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.gibbsmass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_189gibbsmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_188gibbsmass_excess[] = " Get the mass-specific excess Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_189gibbsmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gibbsmass_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_188gibbsmass_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_188gibbsmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("gibbsmass_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 396, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.gibbsmass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":399
 *         """ Get the mass-specific excess Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass_excess(void)` """
 *         return self.thisptr.gibbsmass_excess()
 *     cpdef double umolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar_excess(void)` """
 *         return self.thisptr.umolar_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_191umolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("umolar_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_umolar_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 399, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_191umolar_excess)) {
        __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(2, 399, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 399, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":401
 *     cpdef double umolar_excess(self) except *:
 *         """ Get the mole-specific excess internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar_excess(void)` """
 *         return self.thisptr.umolar_excess()             # <<<<<<<<<<<<<<
 *     cpdef double umass_excess(self) except *:
 *         """ Get the mass-specific excess internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->umolar_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 401, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":399
 *         """ Get the mass-specific excess Gibbs energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::gibbsmass_excess(void)` """
 *         return self.thisptr.gibbsmass_excess()
 *     cpdef double umolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar_excess(void)` """
 *         return self.thisptr.umolar_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.umolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_191umolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_190umolar_excess[] = " Get the mole-specific excess internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_191umolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("umolar_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_190umolar_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_190umolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("umolar_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 399, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.umolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":402
 *         """ Get the mole-specific excess internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar_excess(void)` """
 *         return self.thisptr.umolar_excess()
 *     cpdef double umass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass_excess(void)` """
 *         return self.thisptr.umass_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_193umass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_umass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("umass_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_umass_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 402, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_193umass_excess)) {
        __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(2, 402, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 402, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":404
 *     cpdef double umass_excess(self) except *:
 *         """ Get the mass-specific excess internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass_excess(void)` """
 *         return self.thisptr.umass_excess()             # <<<<<<<<<<<<<<
 *     cpdef double hmolar_excess(self) except *:
 *         """ Get the mole-specific excess enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->umass_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 404, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":402
 *         """ Get the mole-specific excess internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar_excess(void)` """
 *         return self.thisptr.umolar_excess()
 *     cpdef double umass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass_excess(void)` """
 *         return self.thisptr.umass_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.umass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_193umass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_192umass_excess[] = " Get the mass-specific excess internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_193umass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("umass_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_192umass_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_192umass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("umass_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_umass_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 402, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.umass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":405
 *         """ Get the mass-specific excess internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass_excess(void)` """
 *         return self.thisptr.umass_excess()
 *     cpdef double hmolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar_excess(void)` """
 *         return self.thisptr.hmolar_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_195hmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("hmolar_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hmolar_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 405, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_195hmolar_excess)) {
        __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(2, 405, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 405, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":407
 *     cpdef double hmolar_excess(self) except *:
 *         """ Get the mole-specific excess enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar_excess(void)` """
 *         return self.thisptr.hmolar_excess()             # <<<<<<<<<<<<<<
 *     cpdef double hmass_excess(self) except *:
 *         """ Get the mass-specific excess enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->hmolar_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 407, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":405
 *         """ Get the mass-specific excess internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass_excess(void)` """
 *         return self.thisptr.umass_excess()
 *     cpdef double hmolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar_excess(void)` """
 *         return self.thisptr.hmolar_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.hmolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_195hmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_194hmolar_excess[] = " Get the mole-specific excess enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_195hmolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hmolar_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_194hmolar_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_194hmolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("hmolar_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 405, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.hmolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":408
 *         """ Get the mole-specific excess enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar_excess(void)` """
 *         return self.thisptr.hmolar_excess()
 *     cpdef double hmass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass_excess(void)` """
 *         return self.thisptr.hmass_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_197hmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("hmass_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hmass_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_197hmass_excess)) {
        __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(2, 408, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 408, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":410
 *     cpdef double hmass_excess(self) except *:
 *         """ Get the mass-specific excess enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass_excess(void)` """
 *         return self.thisptr.hmass_excess()             # <<<<<<<<<<<<<<
 *     cpdef double smolar_excess(self) except *:
 *         """ Get the mole-specific excess entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->hmass_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 410, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":408
 *         """ Get the mole-specific excess enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar_excess(void)` """
 *         return self.thisptr.hmolar_excess()
 *     cpdef double hmass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass_excess(void)` """
 *         return self.thisptr.hmass_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.hmass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_197hmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_196hmass_excess[] = " Get the mass-specific excess enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_197hmass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hmass_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_196hmass_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_196hmass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("hmass_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 408, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.hmass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":411
 *         """ Get the mass-specific excess enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass_excess(void)` """
 *         return self.thisptr.hmass_excess()
 *     cpdef double smolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar_excess(void)` """
 *         return self.thisptr.smolar_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_199smolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("smolar_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_smolar_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_199smolar_excess)) {
        __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(2, 411, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 411, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":413
 *     cpdef double smolar_excess(self) except *:
 *         """ Get the mole-specific excess entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar_excess(void)` """
 *         return self.thisptr.smolar_excess()             # <<<<<<<<<<<<<<
 *     cpdef double smass_excess(self) except *:
 *         """ Get the mass-specific excess entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->smolar_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 413, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":411
 *         """ Get the mass-specific excess enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass_excess(void)` """
 *         return self.thisptr.hmass_excess()
 *     cpdef double smolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar_excess(void)` """
 *         return self.thisptr.smolar_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.smolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_199smolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_198smolar_excess[] = " Get the mole-specific excess entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_199smolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("smolar_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_198smolar_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_198smolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("smolar_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 411, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.smolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":414
 *         """ Get the mole-specific excess entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar_excess(void)` """
 *         return self.thisptr.smolar_excess()
 *     cpdef double smass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass_excess(void)` """
 *         return self.thisptr.smass_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_201smass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_smass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("smass_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_smass_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_201smass_excess)) {
        __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(2, 414, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 414, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":416
 *     cpdef double smass_excess(self) except *:
 *         """ Get the mass-specific excess entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass_excess(void)` """
 *         return self.thisptr.smass_excess()             # <<<<<<<<<<<<<<
 *     cpdef double volumemolar_excess(self) except *:
 *         """ Get the mole-specific excess volume in m^3/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemolar_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->smass_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 416, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":414
 *         """ Get the mole-specific excess entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar_excess(void)` """
 *         return self.thisptr.smolar_excess()
 *     cpdef double smass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass_excess(void)` """
 *         return self.thisptr.smass_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.smass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_201smass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_200smass_excess[] = " Get the mass-specific excess entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_201smass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("smass_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_200smass_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_200smass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("smass_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_smass_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 414, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.smass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":417
 *         """ Get the mass-specific excess entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass_excess(void)` """
 *         return self.thisptr.smass_excess()
 *     cpdef double volumemolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess volume in m^3/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemolar_excess(void)` """
 *         return self.thisptr.volumemolar_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_203volumemolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("volumemolar_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_volumemolar_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 417, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_203volumemolar_excess)) {
        __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(2, 417, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 417, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":419
 *     cpdef double volumemolar_excess(self) except *:
 *         """ Get the mole-specific excess volume in m^3/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemolar_excess(void)` """
 *         return self.thisptr.volumemolar_excess()             # <<<<<<<<<<<<<<
 *     cpdef double volumemass_excess(self) except *:
 *         """ Get the mass-specific excess volume in m^3/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemass_excess(void)` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->volumemolar_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 419, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":417
 *         """ Get the mass-specific excess entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass_excess(void)` """
 *         return self.thisptr.smass_excess()
 *     cpdef double volumemolar_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole-specific excess volume in m^3/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemolar_excess(void)` """
 *         return self.thisptr.volumemolar_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.volumemolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_203volumemolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_202volumemolar_excess[] = " Get the mole-specific excess volume in m^3/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemolar_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_203volumemolar_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("volumemolar_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_202volumemolar_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_202volumemolar_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("volumemolar_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemolar_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 417, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.volumemolar_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":420
 *         """ Get the mole-specific excess volume in m^3/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemolar_excess(void)` """
 *         return self.thisptr.volumemolar_excess()
 *     cpdef double volumemass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess volume in m^3/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemass_excess(void)` """
 *         return self.thisptr.volumemass_excess()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_205volumemass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("volumemass_excess", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_volumemass_excess); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 420, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_205volumemass_excess)) {
        __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(2, 420, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 420, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":422
 *     cpdef double volumemass_excess(self) except *:
 *         """ Get the mass-specific excess volume in m^3/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemass_excess(void)` """
 *         return self.thisptr.volumemass_excess()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->volumemass_excess();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 422, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":420
 *         """ Get the mole-specific excess volume in m^3/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemolar_excess(void)` """
 *         return self.thisptr.volumemolar_excess()
 *     cpdef double volumemass_excess(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mass-specific excess volume in m^3/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemass_excess(void)` """
 *         return self.thisptr.volumemass_excess()
 */

  /* 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("CoolProp.CoolProp.AbstractState.volumemass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_205volumemass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_204volumemass_excess[] = " Get the mass-specific excess volume in m^3/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::volumemass_excess(void)` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_205volumemass_excess(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("volumemass_excess (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_204volumemass_excess(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_204volumemass_excess(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("volumemass_excess", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemass_excess(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 420, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.volumemass_excess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":429
 *     ## ----------------------------------------
 * 
 *     cpdef CoolPropDbl first_partial_deriv(self, constants_header.parameters OF , constants_header.parameters WRT, constants_header.parameters CONSTANT) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_partial_deriv` """
 *         return self.thisptr.first_partial_deriv(OF, WRT, CONSTANT)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_207first_partial_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT, CoolProp::parameters __pyx_v_CONSTANT, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_10;
  __Pyx_RefNannySetupContext("first_partial_deriv", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_first_partial_deriv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_207first_partial_deriv)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_OF); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 429, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_WRT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 429, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_CONSTANT); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 429, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 429, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 429, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":431
 *     cpdef CoolPropDbl first_partial_deriv(self, constants_header.parameters OF , constants_header.parameters WRT, constants_header.parameters CONSTANT) except *:
 *         """ Get the first partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_partial_deriv` """
 *         return self.thisptr.first_partial_deriv(OF, WRT, CONSTANT)             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl second_partial_deriv(self, constants_header.parameters OF , constants_header.parameters WRT1, constants_header.parameters CONSTANT1, constants_header.parameters WRT2, constants_header.parameters CONSTANT2) except *:
 *         """ Get the second partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_partial_deriv` """
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->first_partial_deriv(__pyx_v_OF, __pyx_v_WRT, __pyx_v_CONSTANT);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 431, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":429
 *     ## ----------------------------------------
 * 
 *     cpdef CoolPropDbl first_partial_deriv(self, constants_header.parameters OF , constants_header.parameters WRT, constants_header.parameters CONSTANT) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_partial_deriv` """
 *         return self.thisptr.first_partial_deriv(OF, WRT, CONSTANT)
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_partial_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_207first_partial_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_206first_partial_deriv[] = " Get the first partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_partial_deriv` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_207first_partial_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_OF;
  CoolProp::parameters __pyx_v_WRT;
  CoolProp::parameters __pyx_v_CONSTANT;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("first_partial_deriv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_OF,&__pyx_n_s_WRT,&__pyx_n_s_CONSTANT,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_OF)) != 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_WRT)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_partial_deriv", 1, 3, 3, 1); __PYX_ERR(2, 429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CONSTANT)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_partial_deriv", 1, 3, 3, 2); __PYX_ERR(2, 429, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "first_partial_deriv") < 0)) __PYX_ERR(2, 429, __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_OF = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 429, __pyx_L3_error)
    __pyx_v_WRT = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 429, __pyx_L3_error)
    __pyx_v_CONSTANT = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 429, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("first_partial_deriv", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 429, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_partial_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_206first_partial_deriv(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_OF, __pyx_v_WRT, __pyx_v_CONSTANT);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_206first_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT, CoolProp::parameters __pyx_v_CONSTANT) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("first_partial_deriv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_partial_deriv(__pyx_v_self, __pyx_v_OF, __pyx_v_WRT, __pyx_v_CONSTANT, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 429, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_partial_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":432
 *         """ Get the first partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_partial_deriv` """
 *         return self.thisptr.first_partial_deriv(OF, WRT, CONSTANT)
 *     cpdef CoolPropDbl second_partial_deriv(self, constants_header.parameters OF , constants_header.parameters WRT1, constants_header.parameters CONSTANT1, constants_header.parameters WRT2, constants_header.parameters CONSTANT2) except *:             # <<<<<<<<<<<<<<
 *         """ Get the second partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_partial_deriv` """
 *         return self.thisptr.second_partial_deriv(OF, WRT1, CONSTANT1, WRT2, CONSTANT2)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_209second_partial_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_CONSTANT1, CoolProp::parameters __pyx_v_WRT2, CoolProp::parameters __pyx_v_CONSTANT2, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_12;
  __Pyx_RefNannySetupContext("second_partial_deriv", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_second_partial_deriv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_209second_partial_deriv)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_OF); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 432, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_WRT1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 432, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_CONSTANT1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 432, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_WRT2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 432, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_CONSTANT2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 432, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_8 = __pyx_t_1; __pyx_t_9 = NULL;
        __pyx_t_10 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_10 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else
        #endif
        {
          __pyx_t_11 = PyTuple_New(5+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 432, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (__pyx_t_9) {
            __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_10, __pyx_t_7);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_7 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 432, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_12;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":434
 *     cpdef CoolPropDbl second_partial_deriv(self, constants_header.parameters OF , constants_header.parameters WRT1, constants_header.parameters CONSTANT1, constants_header.parameters WRT2, constants_header.parameters CONSTANT2) except *:
 *         """ Get the second partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_partial_deriv` """
 *         return self.thisptr.second_partial_deriv(OF, WRT1, CONSTANT1, WRT2, CONSTANT2)             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl first_saturation_deriv(self, constants_header.parameters OF , constants_header.parameters WRT) except *:
 *         """ Get the first derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_saturation_deriv` """
 */
  try {
    __pyx_t_12 = __pyx_v_self->thisptr->second_partial_deriv(__pyx_v_OF, __pyx_v_WRT1, __pyx_v_CONSTANT1, __pyx_v_WRT2, __pyx_v_CONSTANT2);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 434, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_12;
  goto __pyx_L0;

  /* "AbstractState.pyx":432
 *         """ Get the first partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_partial_deriv` """
 *         return self.thisptr.first_partial_deriv(OF, WRT, CONSTANT)
 *     cpdef CoolPropDbl second_partial_deriv(self, constants_header.parameters OF , constants_header.parameters WRT1, constants_header.parameters CONSTANT1, constants_header.parameters WRT2, constants_header.parameters CONSTANT2) except *:             # <<<<<<<<<<<<<<
 *         """ Get the second partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_partial_deriv` """
 *         return self.thisptr.second_partial_deriv(OF, WRT1, CONSTANT1, WRT2, CONSTANT2)
 */

  /* 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_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_partial_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_209second_partial_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_208second_partial_deriv[] = " Get the second partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_partial_deriv` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_209second_partial_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_OF;
  CoolProp::parameters __pyx_v_WRT1;
  CoolProp::parameters __pyx_v_CONSTANT1;
  CoolProp::parameters __pyx_v_WRT2;
  CoolProp::parameters __pyx_v_CONSTANT2;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("second_partial_deriv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_OF,&__pyx_n_s_WRT1,&__pyx_n_s_CONSTANT1,&__pyx_n_s_WRT2,&__pyx_n_s_CONSTANT2,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_OF)) != 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_WRT1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_partial_deriv", 1, 5, 5, 1); __PYX_ERR(2, 432, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CONSTANT1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_partial_deriv", 1, 5, 5, 2); __PYX_ERR(2, 432, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_WRT2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_partial_deriv", 1, 5, 5, 3); __PYX_ERR(2, 432, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CONSTANT2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_partial_deriv", 1, 5, 5, 4); __PYX_ERR(2, 432, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "second_partial_deriv") < 0)) __PYX_ERR(2, 432, __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_OF = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 432, __pyx_L3_error)
    __pyx_v_WRT1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 432, __pyx_L3_error)
    __pyx_v_CONSTANT1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 432, __pyx_L3_error)
    __pyx_v_WRT2 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 432, __pyx_L3_error)
    __pyx_v_CONSTANT2 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[4])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 432, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("second_partial_deriv", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 432, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_partial_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_208second_partial_deriv(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_OF, __pyx_v_WRT1, __pyx_v_CONSTANT1, __pyx_v_WRT2, __pyx_v_CONSTANT2);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_208second_partial_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_CONSTANT1, CoolProp::parameters __pyx_v_WRT2, CoolProp::parameters __pyx_v_CONSTANT2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("second_partial_deriv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_partial_deriv(__pyx_v_self, __pyx_v_OF, __pyx_v_WRT1, __pyx_v_CONSTANT1, __pyx_v_WRT2, __pyx_v_CONSTANT2, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 432, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_partial_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":435
 *         """ Get the second partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_partial_deriv` """
 *         return self.thisptr.second_partial_deriv(OF, WRT1, CONSTANT1, WRT2, CONSTANT2)
 *     cpdef CoolPropDbl first_saturation_deriv(self, constants_header.parameters OF , constants_header.parameters WRT) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_saturation_deriv` """
 *         return self.thisptr.first_saturation_deriv(OF, WRT)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_211first_saturation_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __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;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_9;
  __Pyx_RefNannySetupContext("first_saturation_deriv", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_first_saturation_deriv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_211first_saturation_deriv)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_OF); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 435, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_WRT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 435, __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(2, 435, __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(2, 435, __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(2, 435, __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(2, 435, __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_9 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 435, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_9;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":437
 *     cpdef CoolPropDbl first_saturation_deriv(self, constants_header.parameters OF , constants_header.parameters WRT) except *:
 *         """ Get the first derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_saturation_deriv` """
 *         return self.thisptr.first_saturation_deriv(OF, WRT)             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl second_saturation_deriv(self, constants_header.parameters OF1 , constants_header.parameters WRT1, constants_header.parameters WRT2) except *:
 *         """ Get the second derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_saturation_deriv` """
 */
  try {
    __pyx_t_9 = __pyx_v_self->thisptr->first_saturation_deriv(__pyx_v_OF, __pyx_v_WRT);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 437, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_9;
  goto __pyx_L0;

  /* "AbstractState.pyx":435
 *         """ Get the second partial derivative - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_partial_deriv` """
 *         return self.thisptr.second_partial_deriv(OF, WRT1, CONSTANT1, WRT2, CONSTANT2)
 *     cpdef CoolPropDbl first_saturation_deriv(self, constants_header.parameters OF , constants_header.parameters WRT) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_saturation_deriv` """
 *         return self.thisptr.first_saturation_deriv(OF, WRT)
 */

  /* 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("CoolProp.CoolProp.AbstractState.first_saturation_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_211first_saturation_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_210first_saturation_deriv[] = " Get the first derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_saturation_deriv` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_211first_saturation_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_OF;
  CoolProp::parameters __pyx_v_WRT;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("first_saturation_deriv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_OF,&__pyx_n_s_WRT,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_OF)) != 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_WRT)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_saturation_deriv", 1, 2, 2, 1); __PYX_ERR(2, 435, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "first_saturation_deriv") < 0)) __PYX_ERR(2, 435, __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_OF = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 435, __pyx_L3_error)
    __pyx_v_WRT = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 435, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("first_saturation_deriv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 435, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_saturation_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_210first_saturation_deriv(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_OF, __pyx_v_WRT);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_210first_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF, CoolProp::parameters __pyx_v_WRT) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("first_saturation_deriv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_saturation_deriv(__pyx_v_self, __pyx_v_OF, __pyx_v_WRT, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 435, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_saturation_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":438
 *         """ Get the first derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_saturation_deriv` """
 *         return self.thisptr.first_saturation_deriv(OF, WRT)
 *     cpdef CoolPropDbl second_saturation_deriv(self, constants_header.parameters OF1 , constants_header.parameters WRT1, constants_header.parameters WRT2) except *:             # <<<<<<<<<<<<<<
 *         """ Get the second derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_saturation_deriv` """
 *         return self.thisptr.second_saturation_deriv(OF1, WRT1, WRT2)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_213second_saturation_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF1, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_WRT2, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_10;
  __Pyx_RefNannySetupContext("second_saturation_deriv", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_second_saturation_deriv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 438, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_213second_saturation_deriv)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_OF1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_WRT1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_WRT2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 438, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 438, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 438, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 438, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 438, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":440
 *     cpdef CoolPropDbl second_saturation_deriv(self, constants_header.parameters OF1 , constants_header.parameters WRT1, constants_header.parameters WRT2) except *:
 *         """ Get the second derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_saturation_deriv` """
 *         return self.thisptr.second_saturation_deriv(OF1, WRT1, WRT2)             # <<<<<<<<<<<<<<
 *     cpdef double first_two_phase_deriv(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant) except *:
 *         """ Get the first two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv` """
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->second_saturation_deriv(__pyx_v_OF1, __pyx_v_WRT1, __pyx_v_WRT2);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 440, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":438
 *         """ Get the first derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::first_saturation_deriv` """
 *         return self.thisptr.first_saturation_deriv(OF, WRT)
 *     cpdef CoolPropDbl second_saturation_deriv(self, constants_header.parameters OF1 , constants_header.parameters WRT1, constants_header.parameters WRT2) except *:             # <<<<<<<<<<<<<<
 *         """ Get the second derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_saturation_deriv` """
 *         return self.thisptr.second_saturation_deriv(OF1, WRT1, WRT2)
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_saturation_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_213second_saturation_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_212second_saturation_deriv[] = " Get the second derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_saturation_deriv` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_213second_saturation_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_OF1;
  CoolProp::parameters __pyx_v_WRT1;
  CoolProp::parameters __pyx_v_WRT2;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("second_saturation_deriv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_OF1,&__pyx_n_s_WRT1,&__pyx_n_s_WRT2,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_OF1)) != 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_WRT1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_saturation_deriv", 1, 3, 3, 1); __PYX_ERR(2, 438, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_WRT2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_saturation_deriv", 1, 3, 3, 2); __PYX_ERR(2, 438, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "second_saturation_deriv") < 0)) __PYX_ERR(2, 438, __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_OF1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 438, __pyx_L3_error)
    __pyx_v_WRT1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 438, __pyx_L3_error)
    __pyx_v_WRT2 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 438, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("second_saturation_deriv", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 438, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_saturation_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_212second_saturation_deriv(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_OF1, __pyx_v_WRT1, __pyx_v_WRT2);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_212second_saturation_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_OF1, CoolProp::parameters __pyx_v_WRT1, CoolProp::parameters __pyx_v_WRT2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("second_saturation_deriv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_saturation_deriv(__pyx_v_self, __pyx_v_OF1, __pyx_v_WRT1, __pyx_v_WRT2, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 438, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_saturation_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":441
 *         """ Get the second derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_saturation_deriv` """
 *         return self.thisptr.second_saturation_deriv(OF1, WRT1, WRT2)
 *     cpdef double first_two_phase_deriv(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv` """
 *         return self.thisptr.first_two_phase_deriv(Of, Wrt, Constant)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_215first_two_phase_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  __Pyx_RefNannySetupContext("first_two_phase_deriv", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_first_two_phase_deriv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 441, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_215first_two_phase_deriv)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Of); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 441, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Wrt); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 441, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Constant); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 441, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 441, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 441, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 441, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":443
 *     cpdef double first_two_phase_deriv(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant) except *:
 *         """ Get the first two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv` """
 *         return self.thisptr.first_two_phase_deriv(Of, Wrt, Constant)             # <<<<<<<<<<<<<<
 *     cpdef double second_two_phase_deriv(self, constants_header.parameters Of1, constants_header.parameters Wrt1, constants_header.parameters Constant1, constants_header.parameters Wrt2, constants_header.parameters Constant2) except *:
 *         """ Get the second two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::second_two_phase_deriv` """
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->first_two_phase_deriv(__pyx_v_Of, __pyx_v_Wrt, __pyx_v_Constant);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 443, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":441
 *         """ Get the second derivative along the saturation curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::second_saturation_deriv` """
 *         return self.thisptr.second_saturation_deriv(OF1, WRT1, WRT2)
 *     cpdef double first_two_phase_deriv(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv` """
 *         return self.thisptr.first_two_phase_deriv(Of, Wrt, Constant)
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_two_phase_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_215first_two_phase_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_214first_two_phase_deriv[] = " Get the first two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_215first_two_phase_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_Of;
  CoolProp::parameters __pyx_v_Wrt;
  CoolProp::parameters __pyx_v_Constant;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("first_two_phase_deriv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Of,&__pyx_n_s_Wrt,&__pyx_n_s_Constant,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_Of)) != 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_Wrt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_two_phase_deriv", 1, 3, 3, 1); __PYX_ERR(2, 441, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Constant)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_two_phase_deriv", 1, 3, 3, 2); __PYX_ERR(2, 441, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "first_two_phase_deriv") < 0)) __PYX_ERR(2, 441, __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_Of = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 441, __pyx_L3_error)
    __pyx_v_Wrt = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 441, __pyx_L3_error)
    __pyx_v_Constant = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 441, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("first_two_phase_deriv", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 441, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_two_phase_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_214first_two_phase_deriv(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_Of, __pyx_v_Wrt, __pyx_v_Constant);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_214first_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("first_two_phase_deriv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv(__pyx_v_self, __pyx_v_Of, __pyx_v_Wrt, __pyx_v_Constant, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 441, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_two_phase_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":444
 *         """ Get the first two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv` """
 *         return self.thisptr.first_two_phase_deriv(Of, Wrt, Constant)
 *     cpdef double second_two_phase_deriv(self, constants_header.parameters Of1, constants_header.parameters Wrt1, constants_header.parameters Constant1, constants_header.parameters Wrt2, constants_header.parameters Constant2) except *:             # <<<<<<<<<<<<<<
 *         """ Get the second two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::second_two_phase_deriv` """
 *         return self.thisptr.second_two_phase_deriv(Of1, Wrt1, Constant1, Wrt2, Constant2)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_217second_two_phase_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of1, CoolProp::parameters __pyx_v_Wrt1, CoolProp::parameters __pyx_v_Constant1, CoolProp::parameters __pyx_v_Wrt2, CoolProp::parameters __pyx_v_Constant2, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  double __pyx_t_12;
  __Pyx_RefNannySetupContext("second_two_phase_deriv", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_second_two_phase_deriv); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 444, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_217second_two_phase_deriv)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Of1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Wrt1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Constant1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Wrt2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Constant2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_8 = __pyx_t_1; __pyx_t_9 = NULL;
        __pyx_t_10 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_10 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 444, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 444, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else
        #endif
        {
          __pyx_t_11 = PyTuple_New(5+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          if (__pyx_t_9) {
            __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_10, __pyx_t_7);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_7 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 444, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_12;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":446
 *     cpdef double second_two_phase_deriv(self, constants_header.parameters Of1, constants_header.parameters Wrt1, constants_header.parameters Constant1, constants_header.parameters Wrt2, constants_header.parameters Constant2) except *:
 *         """ Get the second two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::second_two_phase_deriv` """
 *         return self.thisptr.second_two_phase_deriv(Of1, Wrt1, Constant1, Wrt2, Constant2)             # <<<<<<<<<<<<<<
 *     cpdef double first_two_phase_deriv_splined(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant, double x_end) except *:
 *         """ Get the first two-phase derivative using splines - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv_splined` """
 */
  try {
    __pyx_t_12 = __pyx_v_self->thisptr->second_two_phase_deriv(__pyx_v_Of1, __pyx_v_Wrt1, __pyx_v_Constant1, __pyx_v_Wrt2, __pyx_v_Constant2);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 446, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_12;
  goto __pyx_L0;

  /* "AbstractState.pyx":444
 *         """ Get the first two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv` """
 *         return self.thisptr.first_two_phase_deriv(Of, Wrt, Constant)
 *     cpdef double second_two_phase_deriv(self, constants_header.parameters Of1, constants_header.parameters Wrt1, constants_header.parameters Constant1, constants_header.parameters Wrt2, constants_header.parameters Constant2) except *:             # <<<<<<<<<<<<<<
 *         """ Get the second two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::second_two_phase_deriv` """
 *         return self.thisptr.second_two_phase_deriv(Of1, Wrt1, Constant1, Wrt2, Constant2)
 */

  /* 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_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_two_phase_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_217second_two_phase_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_216second_two_phase_deriv[] = " Get the second two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::second_two_phase_deriv` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_217second_two_phase_deriv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_Of1;
  CoolProp::parameters __pyx_v_Wrt1;
  CoolProp::parameters __pyx_v_Constant1;
  CoolProp::parameters __pyx_v_Wrt2;
  CoolProp::parameters __pyx_v_Constant2;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("second_two_phase_deriv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Of1,&__pyx_n_s_Wrt1,&__pyx_n_s_Constant1,&__pyx_n_s_Wrt2,&__pyx_n_s_Constant2,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_Of1)) != 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_Wrt1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_two_phase_deriv", 1, 5, 5, 1); __PYX_ERR(2, 444, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Constant1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_two_phase_deriv", 1, 5, 5, 2); __PYX_ERR(2, 444, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Wrt2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_two_phase_deriv", 1, 5, 5, 3); __PYX_ERR(2, 444, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Constant2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("second_two_phase_deriv", 1, 5, 5, 4); __PYX_ERR(2, 444, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "second_two_phase_deriv") < 0)) __PYX_ERR(2, 444, __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_Of1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 444, __pyx_L3_error)
    __pyx_v_Wrt1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 444, __pyx_L3_error)
    __pyx_v_Constant1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 444, __pyx_L3_error)
    __pyx_v_Wrt2 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 444, __pyx_L3_error)
    __pyx_v_Constant2 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[4])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 444, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("second_two_phase_deriv", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 444, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_two_phase_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_216second_two_phase_deriv(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_Of1, __pyx_v_Wrt1, __pyx_v_Constant1, __pyx_v_Wrt2, __pyx_v_Constant2);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_216second_two_phase_deriv(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of1, CoolProp::parameters __pyx_v_Wrt1, CoolProp::parameters __pyx_v_Constant1, CoolProp::parameters __pyx_v_Wrt2, CoolProp::parameters __pyx_v_Constant2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("second_two_phase_deriv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_second_two_phase_deriv(__pyx_v_self, __pyx_v_Of1, __pyx_v_Wrt1, __pyx_v_Constant1, __pyx_v_Wrt2, __pyx_v_Constant2, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 444, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.second_two_phase_deriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":447
 *         """ Get the second two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::second_two_phase_deriv` """
 *         return self.thisptr.second_two_phase_deriv(Of1, Wrt1, Constant1, Wrt2, Constant2)
 *     cpdef double first_two_phase_deriv_splined(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant, double x_end) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first two-phase derivative using splines - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv_splined` """
 *         return self.thisptr.first_two_phase_deriv_splined(Of, Wrt, Constant, x_end)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_219first_two_phase_deriv_splined(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv_splined(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant, double __pyx_v_x_end, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_10 = NULL;
  double __pyx_t_11;
  __Pyx_RefNannySetupContext("first_two_phase_deriv_splined", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_first_two_phase_deriv_splined); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_219first_two_phase_deriv_splined)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Of); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Wrt); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_Constant); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_x_end); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 447, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 447, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 447, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 447, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_11;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":449
 *     cpdef double first_two_phase_deriv_splined(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant, double x_end) except *:
 *         """ Get the first two-phase derivative using splines - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv_splined` """
 *         return self.thisptr.first_two_phase_deriv_splined(Of, Wrt, Constant, x_end)             # <<<<<<<<<<<<<<
 * 
 *     ## ----------------------------------------
 */
  try {
    __pyx_t_11 = __pyx_v_self->thisptr->first_two_phase_deriv_splined(__pyx_v_Of, __pyx_v_Wrt, __pyx_v_Constant, __pyx_v_x_end);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 449, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_11;
  goto __pyx_L0;

  /* "AbstractState.pyx":447
 *         """ Get the second two-phase derivative - wrapper of C++ function :cpapi:`CoolProp::AbstractState::second_two_phase_deriv` """
 *         return self.thisptr.second_two_phase_deriv(Of1, Wrt1, Constant1, Wrt2, Constant2)
 *     cpdef double first_two_phase_deriv_splined(self, constants_header.parameters Of, constants_header.parameters Wrt, constants_header.parameters Constant, double x_end) except *:             # <<<<<<<<<<<<<<
 *         """ Get the first two-phase derivative using splines - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv_splined` """
 *         return self.thisptr.first_two_phase_deriv_splined(Of, Wrt, Constant, x_end)
 */

  /* 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_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_two_phase_deriv_splined", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_219first_two_phase_deriv_splined(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_218first_two_phase_deriv_splined[] = " Get the first two-phase derivative using splines - wrapper of C++ function :cpapi:`CoolProp::AbstractState::first_two_phase_deriv_splined` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_219first_two_phase_deriv_splined(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_Of;
  CoolProp::parameters __pyx_v_Wrt;
  CoolProp::parameters __pyx_v_Constant;
  double __pyx_v_x_end;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("first_two_phase_deriv_splined (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Of,&__pyx_n_s_Wrt,&__pyx_n_s_Constant,&__pyx_n_s_x_end,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_Of)) != 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_Wrt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_two_phase_deriv_splined", 1, 4, 4, 1); __PYX_ERR(2, 447, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Constant)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_two_phase_deriv_splined", 1, 4, 4, 2); __PYX_ERR(2, 447, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x_end)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("first_two_phase_deriv_splined", 1, 4, 4, 3); __PYX_ERR(2, 447, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "first_two_phase_deriv_splined") < 0)) __PYX_ERR(2, 447, __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_Of = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L3_error)
    __pyx_v_Wrt = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[1])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L3_error)
    __pyx_v_Constant = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L3_error)
    __pyx_v_x_end = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x_end == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("first_two_phase_deriv_splined", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 447, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_two_phase_deriv_splined", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_218first_two_phase_deriv_splined(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_Of, __pyx_v_Wrt, __pyx_v_Constant, __pyx_v_x_end);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_218first_two_phase_deriv_splined(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_Of, CoolProp::parameters __pyx_v_Wrt, CoolProp::parameters __pyx_v_Constant, double __pyx_v_x_end) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("first_two_phase_deriv_splined", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv_splined(__pyx_v_self, __pyx_v_Of, __pyx_v_Wrt, __pyx_v_Constant, __pyx_v_x_end, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.first_two_phase_deriv_splined", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":455
 *     ## ----------------------------------------
 * 
 *     cpdef bint has_melting_line(self) except *:             # <<<<<<<<<<<<<<
 *         """ Check if the fluid has a melting line - True if is does, False otherwise - wrapper of c++ function :cpapi:`CoolProp::AbstractState::has_melting_line` """
 *         return self.thisptr.has_melting_line()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_221has_melting_line(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_13AbstractState_has_melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  int __pyx_r;
  __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;
  bool __pyx_t_6;
  __Pyx_RefNannySetupContext("has_melting_line", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_has_melting_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 455, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_221has_melting_line)) {
        __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(2, 455, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 455, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":457
 *     cpdef bint has_melting_line(self) except *:
 *         """ Check if the fluid has a melting line - True if is does, False otherwise - wrapper of c++ function :cpapi:`CoolProp::AbstractState::has_melting_line` """
 *         return self.thisptr.has_melting_line()             # <<<<<<<<<<<<<<
 *     cpdef double melting_line(self, int param, int given, double value) except *:
 *         """ Get values from the melting line - wrapper of c++ function :cpapi:`CoolProp::AbstractState::melting_line` """
 */
  try {
    __pyx_t_6 = __pyx_v_self->thisptr->has_melting_line();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 457, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "AbstractState.pyx":455
 *     ## ----------------------------------------
 * 
 *     cpdef bint has_melting_line(self) except *:             # <<<<<<<<<<<<<<
 *         """ Check if the fluid has a melting line - True if is does, False otherwise - wrapper of c++ function :cpapi:`CoolProp::AbstractState::has_melting_line` """
 *         return self.thisptr.has_melting_line()
 */

  /* 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("CoolProp.CoolProp.AbstractState.has_melting_line", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_221has_melting_line(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_220has_melting_line[] = " Check if the fluid has a melting line - True if is does, False otherwise - wrapper of c++ function :cpapi:`CoolProp::AbstractState::has_melting_line` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_221has_melting_line(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("has_melting_line (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_220has_melting_line(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_220has_melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("has_melting_line", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_has_melting_line(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 455, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.has_melting_line", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":458
 *         """ Check if the fluid has a melting line - True if is does, False otherwise - wrapper of c++ function :cpapi:`CoolProp::AbstractState::has_melting_line` """
 *         return self.thisptr.has_melting_line()
 *     cpdef double melting_line(self, int param, int given, double value) except *:             # <<<<<<<<<<<<<<
 *         """ Get values from the melting line - wrapper of c++ function :cpapi:`CoolProp::AbstractState::melting_line` """
 *         return self.thisptr.melting_line(param, given, value)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_223melting_line(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_param, int __pyx_v_given, double __pyx_v_value, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_9 = NULL;
  double __pyx_t_10;
  __Pyx_RefNannySetupContext("melting_line", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_melting_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 458, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_223melting_line)) {
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_param); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 458, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_given); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 458, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyFloat_FromDouble(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 458, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(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_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 458, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_3, __pyx_t_4, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 458, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 458, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_10;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":460
 *     cpdef double melting_line(self, int param, int given, double value) except *:
 *         """ Get values from the melting line - wrapper of c++ function :cpapi:`CoolProp::AbstractState::melting_line` """
 *         return self.thisptr.melting_line(param, given, value)             # <<<<<<<<<<<<<<
 *     cpdef double saturation_ancillary(self, constants_header.parameters param, int Q, constants_header.parameters given, double value) except *:
 *         """ Get values from the saturation_ancillary - wrapper of c++ function :cpapi:`CoolProp::AbstractState::saturation_ancillary` """
 */
  try {
    __pyx_t_10 = __pyx_v_self->thisptr->melting_line(__pyx_v_param, __pyx_v_given, __pyx_v_value);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 460, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_10;
  goto __pyx_L0;

  /* "AbstractState.pyx":458
 *         """ Check if the fluid has a melting line - True if is does, False otherwise - wrapper of c++ function :cpapi:`CoolProp::AbstractState::has_melting_line` """
 *         return self.thisptr.has_melting_line()
 *     cpdef double melting_line(self, int param, int given, double value) except *:             # <<<<<<<<<<<<<<
 *         """ Get values from the melting line - wrapper of c++ function :cpapi:`CoolProp::AbstractState::melting_line` """
 *         return self.thisptr.melting_line(param, given, value)
 */

  /* 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_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.melting_line", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_223melting_line(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_222melting_line[] = " Get values from the melting line - wrapper of c++ function :cpapi:`CoolProp::AbstractState::melting_line` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_223melting_line(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_param;
  int __pyx_v_given;
  double __pyx_v_value;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("melting_line (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_param,&__pyx_n_s_given,&__pyx_n_s_value,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_param)) != 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_given)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("melting_line", 1, 3, 3, 1); __PYX_ERR(2, 458, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("melting_line", 1, 3, 3, 2); __PYX_ERR(2, 458, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "melting_line") < 0)) __PYX_ERR(2, 458, __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_param = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_param == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 458, __pyx_L3_error)
    __pyx_v_given = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_given == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 458, __pyx_L3_error)
    __pyx_v_value = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_value == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 458, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("melting_line", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 458, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.melting_line", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_222melting_line(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_param, __pyx_v_given, __pyx_v_value);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_222melting_line(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_v_param, int __pyx_v_given, double __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("melting_line", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_melting_line(__pyx_v_self, __pyx_v_param, __pyx_v_given, __pyx_v_value, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 458, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.melting_line", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":461
 *         """ Get values from the melting line - wrapper of c++ function :cpapi:`CoolProp::AbstractState::melting_line` """
 *         return self.thisptr.melting_line(param, given, value)
 *     cpdef double saturation_ancillary(self, constants_header.parameters param, int Q, constants_header.parameters given, double value) except *:             # <<<<<<<<<<<<<<
 *         """ Get values from the saturation_ancillary - wrapper of c++ function :cpapi:`CoolProp::AbstractState::saturation_ancillary` """
 *         return self.thisptr.saturation_ancillary(param, Q, given, value)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_225saturation_ancillary(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturation_ancillary(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_param, int __pyx_v_Q, CoolProp::parameters __pyx_v_given, double __pyx_v_value, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  PyObject *__pyx_t_10 = NULL;
  double __pyx_t_11;
  __Pyx_RefNannySetupContext("saturation_ancillary", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_saturation_ancillary); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_225saturation_ancillary)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_param); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 461, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_Q); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 461, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_given); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 461, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyFloat_FromDouble(__pyx_v_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 461, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
        __pyx_t_9 = 0;
        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_9 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 461, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 461, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __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;
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_9, __pyx_t_6);
          __pyx_t_3 = 0;
          __pyx_t_4 = 0;
          __pyx_t_5 = 0;
          __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 461, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_11;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":463
 *     cpdef double saturation_ancillary(self, constants_header.parameters param, int Q, constants_header.parameters given, double value) except *:
 *         """ Get values from the saturation_ancillary - wrapper of c++ function :cpapi:`CoolProp::AbstractState::saturation_ancillary` """
 *         return self.thisptr.saturation_ancillary(param, Q, given, value)             # <<<<<<<<<<<<<<
 * 
 *     ## ----------------------------------------
 */
  try {
    __pyx_t_11 = __pyx_v_self->thisptr->saturation_ancillary(__pyx_v_param, __pyx_v_Q, __pyx_v_given, __pyx_v_value);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 463, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_11;
  goto __pyx_L0;

  /* "AbstractState.pyx":461
 *         """ Get values from the melting line - wrapper of c++ function :cpapi:`CoolProp::AbstractState::melting_line` """
 *         return self.thisptr.melting_line(param, given, value)
 *     cpdef double saturation_ancillary(self, constants_header.parameters param, int Q, constants_header.parameters given, double value) except *:             # <<<<<<<<<<<<<<
 *         """ Get values from the saturation_ancillary - wrapper of c++ function :cpapi:`CoolProp::AbstractState::saturation_ancillary` """
 *         return self.thisptr.saturation_ancillary(param, Q, given, value)
 */

  /* 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_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.saturation_ancillary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_225saturation_ancillary(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_224saturation_ancillary[] = " Get values from the saturation_ancillary - wrapper of c++ function :cpapi:`CoolProp::AbstractState::saturation_ancillary` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_225saturation_ancillary(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_param;
  int __pyx_v_Q;
  CoolProp::parameters __pyx_v_given;
  double __pyx_v_value;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("saturation_ancillary (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_param,&__pyx_n_s_Q,&__pyx_n_s_given,&__pyx_n_s_value,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_param)) != 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_Q)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 4, 4, 1); __PYX_ERR(2, 461, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_given)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 4, 4, 2); __PYX_ERR(2, 461, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 4, 4, 3); __PYX_ERR(2, 461, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "saturation_ancillary") < 0)) __PYX_ERR(2, 461, __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_param = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 461, __pyx_L3_error)
    __pyx_v_Q = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_Q == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 461, __pyx_L3_error)
    __pyx_v_given = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 461, __pyx_L3_error)
    __pyx_v_value = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_value == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 461, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 461, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.saturation_ancillary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_224saturation_ancillary(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), __pyx_v_param, __pyx_v_Q, __pyx_v_given, __pyx_v_value);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_224saturation_ancillary(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CoolProp::parameters __pyx_v_param, int __pyx_v_Q, CoolProp::parameters __pyx_v_given, double __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("saturation_ancillary", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_saturation_ancillary(__pyx_v_self, __pyx_v_param, __pyx_v_Q, __pyx_v_given, __pyx_v_value, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 461, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.saturation_ancillary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":469
 *     ## ----------------------------------------
 * 
 *     cpdef build_phase_envelope(self, string type):             # <<<<<<<<<<<<<<
 *         """ Build the phase envelope - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_phase_envelope` """
 *         self.thisptr.build_phase_envelope(type)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_227build_phase_envelope(PyObject *__pyx_v_self, PyObject *__pyx_arg_type); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_build_phase_envelope(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("build_phase_envelope", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_build_phase_envelope); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_227build_phase_envelope)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __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(2, 469, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":471
 *     cpdef build_phase_envelope(self, string type):
 *         """ Build the phase envelope - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_phase_envelope` """
 *         self.thisptr.build_phase_envelope(type)             # <<<<<<<<<<<<<<
 *     cpdef PyPhaseEnvelopeData get_phase_envelope_data(self):
 *         """ Get the phase envelope data - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_phase_envelope_data` """
 */
  try {
    __pyx_v_self->thisptr->build_phase_envelope(__pyx_v_type);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 471, __pyx_L1_error)
  }

  /* "AbstractState.pyx":469
 *     ## ----------------------------------------
 * 
 *     cpdef build_phase_envelope(self, string type):             # <<<<<<<<<<<<<<
 *         """ Build the phase envelope - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_phase_envelope` """
 *         self.thisptr.build_phase_envelope(type)
 */

  /* 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_AddTraceback("CoolProp.CoolProp.AbstractState.build_phase_envelope", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_227build_phase_envelope(PyObject *__pyx_v_self, PyObject *__pyx_arg_type); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_226build_phase_envelope[] = " Build the phase envelope - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_phase_envelope` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_227build_phase_envelope(PyObject *__pyx_v_self, PyObject *__pyx_arg_type) {
  std::string __pyx_v_type;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("build_phase_envelope (wrapper)", 0);
  assert(__pyx_arg_type); {
    __pyx_v_type = __pyx_convert_string_from_py_std__in_string(__pyx_arg_type); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 469, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.build_phase_envelope", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_226build_phase_envelope(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((std::string)__pyx_v_type));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_226build_phase_envelope(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("build_phase_envelope", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_build_phase_envelope(__pyx_v_self, __pyx_v_type, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __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("CoolProp.CoolProp.AbstractState.build_phase_envelope", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":472
 *         """ Build the phase envelope - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_phase_envelope` """
 *         self.thisptr.build_phase_envelope(type)
 *     cpdef PyPhaseEnvelopeData get_phase_envelope_data(self):             # <<<<<<<<<<<<<<
 *         """ Get the phase envelope data - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_phase_envelope_data` """
 *         cdef cAbstractState.PhaseEnvelopeData pe_data = self.thisptr.get_phase_envelope_data()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_229get_phase_envelope_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_phase_envelope_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  CoolProp::PhaseEnvelopeData __pyx_v_pe_data;
  struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v_pe_out = 0;
  struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  CoolProp::PhaseEnvelopeData __pyx_t_5;
  size_t __pyx_t_6;
  bool __pyx_t_7;
  __Pyx_RefNannySetupContext("get_phase_envelope_data", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_phase_envelope_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 472, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_229get_phase_envelope_data)) {
        __Pyx_XDECREF(((PyObject *)__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(2, 472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8CoolProp_8CoolProp_PyPhaseEnvelopeData))))) __PYX_ERR(2, 472, __pyx_L1_error)
        __pyx_r = ((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":474
 *     cpdef PyPhaseEnvelopeData get_phase_envelope_data(self):
 *         """ Get the phase envelope data - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_phase_envelope_data` """
 *         cdef cAbstractState.PhaseEnvelopeData pe_data = self.thisptr.get_phase_envelope_data()             # <<<<<<<<<<<<<<
 *         cdef PyPhaseEnvelopeData pe_out = PyPhaseEnvelopeData()
 *         pe_out.T = pe_data.T
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->get_phase_envelope_data();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 474, __pyx_L1_error)
  }
  __pyx_v_pe_data = __pyx_t_5;

  /* "AbstractState.pyx":475
 *         """ Get the phase envelope data - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_phase_envelope_data` """
 *         cdef cAbstractState.PhaseEnvelopeData pe_data = self.thisptr.get_phase_envelope_data()
 *         cdef PyPhaseEnvelopeData pe_out = PyPhaseEnvelopeData()             # <<<<<<<<<<<<<<
 *         pe_out.T = pe_data.T
 *         pe_out.p = pe_data.p
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_PyPhaseEnvelopeData)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pe_out = ((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":476
 *         cdef cAbstractState.PhaseEnvelopeData pe_data = self.thisptr.get_phase_envelope_data()
 *         cdef PyPhaseEnvelopeData pe_out = PyPhaseEnvelopeData()
 *         pe_out.T = pe_data.T             # <<<<<<<<<<<<<<
 *         pe_out.p = pe_data.p
 *         pe_out.Q = pe_data.Q
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.T); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 476, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->T);
  __Pyx_DECREF(__pyx_v_pe_out->T);
  __pyx_v_pe_out->T = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":477
 *         cdef PyPhaseEnvelopeData pe_out = PyPhaseEnvelopeData()
 *         pe_out.T = pe_data.T
 *         pe_out.p = pe_data.p             # <<<<<<<<<<<<<<
 *         pe_out.Q = pe_data.Q
 *         pe_out.rhomolar_liq = pe_data.rhomolar_liq
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.p); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 477, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->p);
  __Pyx_DECREF(__pyx_v_pe_out->p);
  __pyx_v_pe_out->p = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":478
 *         pe_out.T = pe_data.T
 *         pe_out.p = pe_data.p
 *         pe_out.Q = pe_data.Q             # <<<<<<<<<<<<<<
 *         pe_out.rhomolar_liq = pe_data.rhomolar_liq
 *         pe_out.rhomolar_vap = pe_data.rhomolar_vap
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.Q); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 478, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->Q);
  __Pyx_DECREF(__pyx_v_pe_out->Q);
  __pyx_v_pe_out->Q = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":479
 *         pe_out.p = pe_data.p
 *         pe_out.Q = pe_data.Q
 *         pe_out.rhomolar_liq = pe_data.rhomolar_liq             # <<<<<<<<<<<<<<
 *         pe_out.rhomolar_vap = pe_data.rhomolar_vap
 *         pe_out.hmolar_liq = pe_data.hmolar_liq
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.rhomolar_liq); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 479, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->rhomolar_liq);
  __Pyx_DECREF(__pyx_v_pe_out->rhomolar_liq);
  __pyx_v_pe_out->rhomolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":480
 *         pe_out.Q = pe_data.Q
 *         pe_out.rhomolar_liq = pe_data.rhomolar_liq
 *         pe_out.rhomolar_vap = pe_data.rhomolar_vap             # <<<<<<<<<<<<<<
 *         pe_out.hmolar_liq = pe_data.hmolar_liq
 *         pe_out.hmolar_vap = pe_data.hmolar_vap
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.rhomolar_vap); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 480, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->rhomolar_vap);
  __Pyx_DECREF(__pyx_v_pe_out->rhomolar_vap);
  __pyx_v_pe_out->rhomolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":481
 *         pe_out.rhomolar_liq = pe_data.rhomolar_liq
 *         pe_out.rhomolar_vap = pe_data.rhomolar_vap
 *         pe_out.hmolar_liq = pe_data.hmolar_liq             # <<<<<<<<<<<<<<
 *         pe_out.hmolar_vap = pe_data.hmolar_vap
 *         pe_out.smolar_liq = pe_data.smolar_liq
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.hmolar_liq); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 481, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->hmolar_liq);
  __Pyx_DECREF(__pyx_v_pe_out->hmolar_liq);
  __pyx_v_pe_out->hmolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":482
 *         pe_out.rhomolar_vap = pe_data.rhomolar_vap
 *         pe_out.hmolar_liq = pe_data.hmolar_liq
 *         pe_out.hmolar_vap = pe_data.hmolar_vap             # <<<<<<<<<<<<<<
 *         pe_out.smolar_liq = pe_data.smolar_liq
 *         pe_out.smolar_vap = pe_data.smolar_vap
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.hmolar_vap); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 482, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->hmolar_vap);
  __Pyx_DECREF(__pyx_v_pe_out->hmolar_vap);
  __pyx_v_pe_out->hmolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":483
 *         pe_out.hmolar_liq = pe_data.hmolar_liq
 *         pe_out.hmolar_vap = pe_data.hmolar_vap
 *         pe_out.smolar_liq = pe_data.smolar_liq             # <<<<<<<<<<<<<<
 *         pe_out.smolar_vap = pe_data.smolar_vap
 *         pe_out.iTsat_max = pe_data.iTsat_max
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.smolar_liq); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 483, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->smolar_liq);
  __Pyx_DECREF(__pyx_v_pe_out->smolar_liq);
  __pyx_v_pe_out->smolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":484
 *         pe_out.hmolar_vap = pe_data.hmolar_vap
 *         pe_out.smolar_liq = pe_data.smolar_liq
 *         pe_out.smolar_vap = pe_data.smolar_vap             # <<<<<<<<<<<<<<
 *         pe_out.iTsat_max = pe_data.iTsat_max
 *         pe_out.ipsat_max = pe_data.ipsat_max
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_pe_data.smolar_vap); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 484, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->smolar_vap);
  __Pyx_DECREF(__pyx_v_pe_out->smolar_vap);
  __pyx_v_pe_out->smolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":485
 *         pe_out.smolar_liq = pe_data.smolar_liq
 *         pe_out.smolar_vap = pe_data.smolar_vap
 *         pe_out.iTsat_max = pe_data.iTsat_max             # <<<<<<<<<<<<<<
 *         pe_out.ipsat_max = pe_data.ipsat_max
 *         pe_out.TypeI = pe_data.TypeI
 */
  __pyx_t_6 = __pyx_v_pe_data.iTsat_max;
  __pyx_v_pe_out->iTsat_max = __pyx_t_6;

  /* "AbstractState.pyx":486
 *         pe_out.smolar_vap = pe_data.smolar_vap
 *         pe_out.iTsat_max = pe_data.iTsat_max
 *         pe_out.ipsat_max = pe_data.ipsat_max             # <<<<<<<<<<<<<<
 *         pe_out.TypeI = pe_data.TypeI
 *         pe_out.x = pe_data.x
 */
  __pyx_t_6 = __pyx_v_pe_data.ipsat_max;
  __pyx_v_pe_out->ipsat_max = __pyx_t_6;

  /* "AbstractState.pyx":487
 *         pe_out.iTsat_max = pe_data.iTsat_max
 *         pe_out.ipsat_max = pe_data.ipsat_max
 *         pe_out.TypeI = pe_data.TypeI             # <<<<<<<<<<<<<<
 *         pe_out.x = pe_data.x
 *         pe_out.y = pe_data.y
 */
  __pyx_t_7 = __pyx_v_pe_data.TypeI;
  __pyx_v_pe_out->TypeI = __pyx_t_7;

  /* "AbstractState.pyx":488
 *         pe_out.ipsat_max = pe_data.ipsat_max
 *         pe_out.TypeI = pe_data.TypeI
 *         pe_out.x = pe_data.x             # <<<<<<<<<<<<<<
 *         pe_out.y = pe_data.y
 *         pe_out.K = pe_data.K
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(__pyx_v_pe_data.x); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 488, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->x);
  __Pyx_DECREF(__pyx_v_pe_out->x);
  __pyx_v_pe_out->x = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":489
 *         pe_out.TypeI = pe_data.TypeI
 *         pe_out.x = pe_data.x
 *         pe_out.y = pe_data.y             # <<<<<<<<<<<<<<
 *         pe_out.K = pe_data.K
 *         return pe_out
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(__pyx_v_pe_data.y); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 489, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->y);
  __Pyx_DECREF(__pyx_v_pe_out->y);
  __pyx_v_pe_out->y = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":490
 *         pe_out.x = pe_data.x
 *         pe_out.y = pe_data.y
 *         pe_out.K = pe_data.K             # <<<<<<<<<<<<<<
 *         return pe_out
 * 
 */
  __pyx_t_1 = __pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(__pyx_v_pe_data.K); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(2, 490, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_pe_out->K);
  __Pyx_DECREF(__pyx_v_pe_out->K);
  __pyx_v_pe_out->K = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "AbstractState.pyx":491
 *         pe_out.y = pe_data.y
 *         pe_out.K = pe_data.K
 *         return pe_out             # <<<<<<<<<<<<<<
 * 
 *     ## -----------------------------------------
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_pe_out));
  __pyx_r = __pyx_v_pe_out;
  goto __pyx_L0;

  /* "AbstractState.pyx":472
 *         """ Build the phase envelope - wrapper of c++ function :cpapi:`CoolProp::AbstractState::build_phase_envelope` """
 *         self.thisptr.build_phase_envelope(type)
 *     cpdef PyPhaseEnvelopeData get_phase_envelope_data(self):             # <<<<<<<<<<<<<<
 *         """ Get the phase envelope data - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_phase_envelope_data` """
 *         cdef cAbstractState.PhaseEnvelopeData pe_data = self.thisptr.get_phase_envelope_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_AddTraceback("CoolProp.CoolProp.AbstractState.get_phase_envelope_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_pe_out);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_229get_phase_envelope_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_228get_phase_envelope_data[] = " Get the phase envelope data - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_phase_envelope_data` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_229get_phase_envelope_data(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_phase_envelope_data (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_228get_phase_envelope_data(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_228get_phase_envelope_data(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_phase_envelope_data", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_phase_envelope_data(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 472, __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("CoolProp.CoolProp.AbstractState.get_phase_envelope_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":497
 *     ## -----------------------------------------
 * 
 *     cpdef tuple ideal_curve(self, string type):             # <<<<<<<<<<<<<<
 *         """ Get an ideal curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::ideal_curve` """
 *         cdef vector[double] T, p
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_231ideal_curve(PyObject *__pyx_v_self, PyObject *__pyx_arg_type); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_13AbstractState_ideal_curve(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type, int __pyx_skip_dispatch) {
  std::vector<double>  __pyx_v_T;
  std::vector<double>  __pyx_v_p;
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("ideal_curve", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ideal_curve); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 497, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_231ideal_curve)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 497, __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(2, 497, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(2, 497, __pyx_L1_error)
        __pyx_r = ((PyObject*)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":500
 *         """ Get an ideal curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::ideal_curve` """
 *         cdef vector[double] T, p
 *         self.thisptr.ideal_curve(type, T, p)             # <<<<<<<<<<<<<<
 *         return T, p
 * 
 */
  try {
    __pyx_v_self->thisptr->ideal_curve(__pyx_v_type, __pyx_v_T, __pyx_v_p);
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 500, __pyx_L1_error)
  }

  /* "AbstractState.pyx":501
 *         cdef vector[double] T, p
 *         self.thisptr.ideal_curve(type, T, p)
 *         return T, p             # <<<<<<<<<<<<<<
 * 
 *     ## -----------------------------------------
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_vector_to_py_double(__pyx_v_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_vector_to_py_double(__pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 501, __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_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "AbstractState.pyx":497
 *     ## -----------------------------------------
 * 
 *     cpdef tuple ideal_curve(self, string type):             # <<<<<<<<<<<<<<
 *         """ Get an ideal curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::ideal_curve` """
 *         cdef vector[double] T, p
 */

  /* 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("CoolProp.CoolProp.AbstractState.ideal_curve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_231ideal_curve(PyObject *__pyx_v_self, PyObject *__pyx_arg_type); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_230ideal_curve[] = " Get an ideal curve - wrapper of c++ function :cpapi:`CoolProp::AbstractState::ideal_curve` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_231ideal_curve(PyObject *__pyx_v_self, PyObject *__pyx_arg_type) {
  std::string __pyx_v_type;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ideal_curve (wrapper)", 0);
  assert(__pyx_arg_type); {
    __pyx_v_type = __pyx_convert_string_from_py_std__in_string(__pyx_arg_type); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 497, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.ideal_curve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_230ideal_curve(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((std::string)__pyx_v_type));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_230ideal_curve(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, std::string __pyx_v_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("ideal_curve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_ideal_curve(__pyx_v_self, __pyx_v_type, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 497, __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("CoolProp.CoolProp.AbstractState.ideal_curve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":507
 *     ## -----------------------------------------
 * 
 *     cpdef CoolPropDbl alpha0(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alpha0` """
 *         return self.thisptr.alpha0()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_233alpha0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_alpha0(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("alpha0", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_alpha0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_233alpha0)) {
        __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(2, 507, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 507, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":509
 *     cpdef CoolPropDbl alpha0(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alpha0` """
 *         return self.thisptr.alpha0()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl dalpha0_dDelta(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dDelta` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->alpha0();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 509, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":507
 *     ## -----------------------------------------
 * 
 *     cpdef CoolPropDbl alpha0(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alpha0` """
 *         return self.thisptr.alpha0()
 */

  /* 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("CoolProp.CoolProp.AbstractState.alpha0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_233alpha0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_232alpha0[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alpha0` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_233alpha0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("alpha0 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_232alpha0(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_232alpha0(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("alpha0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_alpha0(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 507, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.alpha0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":510
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alpha0` """
 *         return self.thisptr.alpha0()
 *     cpdef CoolPropDbl dalpha0_dDelta(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dDelta` """
 *         return self.thisptr.dalpha0_dDelta()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_235dalpha0_dDelta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("dalpha0_dDelta", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dalpha0_dDelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 510, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_235dalpha0_dDelta)) {
        __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(2, 510, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 510, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":512
 *     cpdef CoolPropDbl dalpha0_dDelta(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dDelta` """
 *         return self.thisptr.dalpha0_dDelta()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl dalpha0_dTau(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dTau` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->dalpha0_dDelta();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 512, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":510
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alpha0` """
 *         return self.thisptr.alpha0()
 *     cpdef CoolPropDbl dalpha0_dDelta(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dDelta` """
 *         return self.thisptr.dalpha0_dDelta()
 */

  /* 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("CoolProp.CoolProp.AbstractState.dalpha0_dDelta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_235dalpha0_dDelta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_234dalpha0_dDelta[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dDelta` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_235dalpha0_dDelta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dalpha0_dDelta (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_234dalpha0_dDelta(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_234dalpha0_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("dalpha0_dDelta", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dDelta(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 510, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.dalpha0_dDelta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":513
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dDelta` """
 *         return self.thisptr.dalpha0_dDelta()
 *     cpdef CoolPropDbl dalpha0_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dTau` """
 *         return self.thisptr.dalpha0_dTau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_237dalpha0_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("dalpha0_dTau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dalpha0_dTau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 513, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_237dalpha0_dTau)) {
        __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(2, 513, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 513, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":515
 *     cpdef CoolPropDbl dalpha0_dTau(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dTau` """
 *         return self.thisptr.dalpha0_dTau()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d2alpha0_dDelta2(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta2` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->dalpha0_dTau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 515, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":513
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dDelta` """
 *         return self.thisptr.dalpha0_dDelta()
 *     cpdef CoolPropDbl dalpha0_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dTau` """
 *         return self.thisptr.dalpha0_dTau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.dalpha0_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_237dalpha0_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_236dalpha0_dTau[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dTau` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_237dalpha0_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dalpha0_dTau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_236dalpha0_dTau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_236dalpha0_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("dalpha0_dTau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dTau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 513, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.dalpha0_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":516
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dTau` """
 *         return self.thisptr.dalpha0_dTau()
 *     cpdef CoolPropDbl d2alpha0_dDelta2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta2` """
 *         return self.thisptr.d2alpha0_dDelta2()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_239d2alpha0_dDelta2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d2alpha0_dDelta2", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d2alpha0_dDelta2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 516, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_239d2alpha0_dDelta2)) {
        __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(2, 516, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 516, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":518
 *     cpdef CoolPropDbl d2alpha0_dDelta2(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta2` """
 *         return self.thisptr.d2alpha0_dDelta2()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d2alpha0_dDelta_dTau(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta_dTau` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d2alpha0_dDelta2();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 518, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":516
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalpha0_dTau` """
 *         return self.thisptr.dalpha0_dTau()
 *     cpdef CoolPropDbl d2alpha0_dDelta2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta2` """
 *         return self.thisptr.d2alpha0_dDelta2()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d2alpha0_dDelta2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_239d2alpha0_dDelta2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_238d2alpha0_dDelta2[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta2` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_239d2alpha0_dDelta2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d2alpha0_dDelta2 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_238d2alpha0_dDelta2(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_238d2alpha0_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d2alpha0_dDelta2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta2(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 516, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d2alpha0_dDelta2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":519
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta2` """
 *         return self.thisptr.d2alpha0_dDelta2()
 *     cpdef CoolPropDbl d2alpha0_dDelta_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta_dTau` """
 *         return self.thisptr.d2alpha0_dDelta_dTau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_241d2alpha0_dDelta_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d2alpha0_dDelta_dTau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d2alpha0_dDelta_dTau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 519, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_241d2alpha0_dDelta_dTau)) {
        __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(2, 519, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 519, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":521
 *     cpdef CoolPropDbl d2alpha0_dDelta_dTau(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta_dTau` """
 *         return self.thisptr.d2alpha0_dDelta_dTau()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d2alpha0_dTau2(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dTau2` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d2alpha0_dDelta_dTau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 521, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":519
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta2` """
 *         return self.thisptr.d2alpha0_dDelta2()
 *     cpdef CoolPropDbl d2alpha0_dDelta_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta_dTau` """
 *         return self.thisptr.d2alpha0_dDelta_dTau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d2alpha0_dDelta_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_241d2alpha0_dDelta_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_240d2alpha0_dDelta_dTau[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta_dTau` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_241d2alpha0_dDelta_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d2alpha0_dDelta_dTau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_240d2alpha0_dDelta_dTau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_240d2alpha0_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d2alpha0_dDelta_dTau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta_dTau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 519, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d2alpha0_dDelta_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":522
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta_dTau` """
 *         return self.thisptr.d2alpha0_dDelta_dTau()
 *     cpdef CoolPropDbl d2alpha0_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dTau2` """
 *         return self.thisptr.d2alpha0_dTau2()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_243d2alpha0_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d2alpha0_dTau2", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d2alpha0_dTau2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 522, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_243d2alpha0_dTau2)) {
        __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(2, 522, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 522, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":524
 *     cpdef CoolPropDbl d2alpha0_dTau2(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dTau2` """
 *         return self.thisptr.d2alpha0_dTau2()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alpha0_dTau3(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dTau3` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d2alpha0_dTau2();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 524, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":522
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dDelta_dTau` """
 *         return self.thisptr.d2alpha0_dDelta_dTau()
 *     cpdef CoolPropDbl d2alpha0_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dTau2` """
 *         return self.thisptr.d2alpha0_dTau2()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d2alpha0_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_243d2alpha0_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_242d2alpha0_dTau2[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dTau2` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_243d2alpha0_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d2alpha0_dTau2 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_242d2alpha0_dTau2(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_242d2alpha0_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d2alpha0_dTau2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dTau2(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 522, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d2alpha0_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":525
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dTau2` """
 *         return self.thisptr.d2alpha0_dTau2()
 *     cpdef CoolPropDbl d3alpha0_dTau3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dTau3` """
 *         return self.thisptr.d3alpha0_dTau3()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_245d3alpha0_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alpha0_dTau3", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alpha0_dTau3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 525, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_245d3alpha0_dTau3)) {
        __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(2, 525, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 525, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":527
 *     cpdef CoolPropDbl d3alpha0_dTau3(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dTau3` """
 *         return self.thisptr.d3alpha0_dTau3()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alpha0_dDelta_dTau2(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta_dTau2` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alpha0_dTau3();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 527, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":525
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alpha0_dTau2` """
 *         return self.thisptr.d2alpha0_dTau2()
 *     cpdef CoolPropDbl d3alpha0_dTau3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dTau3` """
 *         return self.thisptr.d3alpha0_dTau3()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alpha0_dTau3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_245d3alpha0_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_244d3alpha0_dTau3[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dTau3` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_245d3alpha0_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alpha0_dTau3 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_244d3alpha0_dTau3(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_244d3alpha0_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alpha0_dTau3", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dTau3(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 525, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alpha0_dTau3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":528
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dTau3` """
 *         return self.thisptr.d3alpha0_dTau3()
 *     cpdef CoolPropDbl d3alpha0_dDelta_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta_dTau2` """
 *         return self.thisptr.d3alpha0_dDelta_dTau2()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_247d3alpha0_dDelta_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alpha0_dDelta_dTau2", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alpha0_dDelta_dTau2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 528, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_247d3alpha0_dDelta_dTau2)) {
        __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(2, 528, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 528, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":530
 *     cpdef CoolPropDbl d3alpha0_dDelta_dTau2(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta_dTau2` """
 *         return self.thisptr.d3alpha0_dDelta_dTau2()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alpha0_dDelta2_dTau(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta2_dTau` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alpha0_dDelta_dTau2();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 530, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":528
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dTau3` """
 *         return self.thisptr.d3alpha0_dTau3()
 *     cpdef CoolPropDbl d3alpha0_dDelta_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta_dTau2` """
 *         return self.thisptr.d3alpha0_dDelta_dTau2()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alpha0_dDelta_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_247d3alpha0_dDelta_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_246d3alpha0_dDelta_dTau2[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta_dTau2` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_247d3alpha0_dDelta_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alpha0_dDelta_dTau2 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_246d3alpha0_dDelta_dTau2(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_246d3alpha0_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alpha0_dDelta_dTau2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta_dTau2(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 528, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alpha0_dDelta_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":531
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta_dTau2` """
 *         return self.thisptr.d3alpha0_dDelta_dTau2()
 *     cpdef CoolPropDbl d3alpha0_dDelta2_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta2_dTau` """
 *         return self.thisptr.d3alpha0_dDelta2_dTau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_249d3alpha0_dDelta2_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alpha0_dDelta2_dTau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alpha0_dDelta2_dTau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 531, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_249d3alpha0_dDelta2_dTau)) {
        __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(2, 531, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 531, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":533
 *     cpdef CoolPropDbl d3alpha0_dDelta2_dTau(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta2_dTau` """
 *         return self.thisptr.d3alpha0_dDelta2_dTau()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alpha0_dDelta3(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta3` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alpha0_dDelta2_dTau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 533, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":531
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta_dTau2` """
 *         return self.thisptr.d3alpha0_dDelta_dTau2()
 *     cpdef CoolPropDbl d3alpha0_dDelta2_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta2_dTau` """
 *         return self.thisptr.d3alpha0_dDelta2_dTau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alpha0_dDelta2_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_249d3alpha0_dDelta2_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_248d3alpha0_dDelta2_dTau[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta2_dTau` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_249d3alpha0_dDelta2_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alpha0_dDelta2_dTau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_248d3alpha0_dDelta2_dTau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_248d3alpha0_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alpha0_dDelta2_dTau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta2_dTau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 531, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alpha0_dDelta2_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":534
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta2_dTau` """
 *         return self.thisptr.d3alpha0_dDelta2_dTau()
 *     cpdef CoolPropDbl d3alpha0_dDelta3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta3` """
 *         return self.thisptr.d3alpha0_dDelta3()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_251d3alpha0_dDelta3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alpha0_dDelta3", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alpha0_dDelta3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 534, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_251d3alpha0_dDelta3)) {
        __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(2, 534, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 534, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":536
 *     cpdef CoolPropDbl d3alpha0_dDelta3(self) except *:
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta3` """
 *         return self.thisptr.d3alpha0_dDelta3()             # <<<<<<<<<<<<<<
 * 
 *     cpdef CoolPropDbl alphar(self) except *:
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alpha0_dDelta3();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 536, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":534
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta2_dTau` """
 *         return self.thisptr.d3alpha0_dDelta2_dTau()
 *     cpdef CoolPropDbl d3alpha0_dDelta3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta3` """
 *         return self.thisptr.d3alpha0_dDelta3()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alpha0_dDelta3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_251d3alpha0_dDelta3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_250d3alpha0_dDelta3[] = " Get the ideal-gas reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alpha0_dDelta3` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_251d3alpha0_dDelta3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alpha0_dDelta3 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_250d3alpha0_dDelta3(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_250d3alpha0_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alpha0_dDelta3", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta3(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 534, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alpha0_dDelta3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":538
 *         return self.thisptr.d3alpha0_dDelta3()
 * 
 *     cpdef CoolPropDbl alphar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alphar` """
 *         return self.thisptr.alphar()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_253alphar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_alphar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("alphar", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_alphar); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 538, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_253alphar)) {
        __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(2, 538, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 538, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":540
 *     cpdef CoolPropDbl alphar(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alphar` """
 *         return self.thisptr.alphar()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl dalphar_dDelta(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dDelta` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->alphar();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 540, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":538
 *         return self.thisptr.d3alpha0_dDelta3()
 * 
 *     cpdef CoolPropDbl alphar(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alphar` """
 *         return self.thisptr.alphar()
 */

  /* 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("CoolProp.CoolProp.AbstractState.alphar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_253alphar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_252alphar[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alphar` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_253alphar(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("alphar (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_252alphar(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_252alphar(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("alphar", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_alphar(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 538, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.alphar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":541
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alphar` """
 *         return self.thisptr.alphar()
 *     cpdef CoolPropDbl dalphar_dDelta(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dDelta` """
 *         return self.thisptr.dalphar_dDelta()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_255dalphar_dDelta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("dalphar_dDelta", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dalphar_dDelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 541, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_255dalphar_dDelta)) {
        __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(2, 541, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 541, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":543
 *     cpdef CoolPropDbl dalphar_dDelta(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dDelta` """
 *         return self.thisptr.dalphar_dDelta()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl dalphar_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dTau` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->dalphar_dDelta();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 543, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":541
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::alphar` """
 *         return self.thisptr.alphar()
 *     cpdef CoolPropDbl dalphar_dDelta(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dDelta` """
 *         return self.thisptr.dalphar_dDelta()
 */

  /* 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("CoolProp.CoolProp.AbstractState.dalphar_dDelta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_255dalphar_dDelta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_254dalphar_dDelta[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dDelta` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_255dalphar_dDelta(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dalphar_dDelta (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_254dalphar_dDelta(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_254dalphar_dDelta(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("dalphar_dDelta", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dDelta(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 541, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.dalphar_dDelta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":544
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dDelta` """
 *         return self.thisptr.dalphar_dDelta()
 *     cpdef CoolPropDbl dalphar_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dTau` """
 *         return self.thisptr.dalphar_dTau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_257dalphar_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("dalphar_dTau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dalphar_dTau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 544, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_257dalphar_dTau)) {
        __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(2, 544, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 544, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":546
 *     cpdef CoolPropDbl dalphar_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dTau` """
 *         return self.thisptr.dalphar_dTau()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d2alphar_dDelta2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta2` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->dalphar_dTau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 546, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":544
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dDelta` """
 *         return self.thisptr.dalphar_dDelta()
 *     cpdef CoolPropDbl dalphar_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dTau` """
 *         return self.thisptr.dalphar_dTau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.dalphar_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_257dalphar_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_256dalphar_dTau[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dTau` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_257dalphar_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dalphar_dTau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_256dalphar_dTau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_256dalphar_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("dalphar_dTau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dTau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 544, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.dalphar_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":547
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dTau` """
 *         return self.thisptr.dalphar_dTau()
 *     cpdef CoolPropDbl d2alphar_dDelta2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta2` """
 *         return self.thisptr.d2alphar_dDelta2()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_259d2alphar_dDelta2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d2alphar_dDelta2", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d2alphar_dDelta2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 547, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_259d2alphar_dDelta2)) {
        __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(2, 547, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 547, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":549
 *     cpdef CoolPropDbl d2alphar_dDelta2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta2` """
 *         return self.thisptr.d2alphar_dDelta2()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d2alphar_dDelta_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta_dTau` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d2alphar_dDelta2();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 549, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":547
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::dalphar_dTau` """
 *         return self.thisptr.dalphar_dTau()
 *     cpdef CoolPropDbl d2alphar_dDelta2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta2` """
 *         return self.thisptr.d2alphar_dDelta2()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d2alphar_dDelta2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_259d2alphar_dDelta2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_258d2alphar_dDelta2[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta2` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_259d2alphar_dDelta2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d2alphar_dDelta2 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_258d2alphar_dDelta2(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_258d2alphar_dDelta2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d2alphar_dDelta2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta2(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 547, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d2alphar_dDelta2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":550
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta2` """
 *         return self.thisptr.d2alphar_dDelta2()
 *     cpdef CoolPropDbl d2alphar_dDelta_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta_dTau` """
 *         return self.thisptr.d2alphar_dDelta_dTau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_261d2alphar_dDelta_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d2alphar_dDelta_dTau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d2alphar_dDelta_dTau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 550, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_261d2alphar_dDelta_dTau)) {
        __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(2, 550, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 550, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":552
 *     cpdef CoolPropDbl d2alphar_dDelta_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta_dTau` """
 *         return self.thisptr.d2alphar_dDelta_dTau()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d2alphar_dTau2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dTau2` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d2alphar_dDelta_dTau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 552, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":550
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta2` """
 *         return self.thisptr.d2alphar_dDelta2()
 *     cpdef CoolPropDbl d2alphar_dDelta_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta_dTau` """
 *         return self.thisptr.d2alphar_dDelta_dTau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d2alphar_dDelta_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_261d2alphar_dDelta_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_260d2alphar_dDelta_dTau[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta_dTau` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_261d2alphar_dDelta_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d2alphar_dDelta_dTau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_260d2alphar_dDelta_dTau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_260d2alphar_dDelta_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d2alphar_dDelta_dTau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta_dTau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 550, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d2alphar_dDelta_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":553
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta_dTau` """
 *         return self.thisptr.d2alphar_dDelta_dTau()
 *     cpdef CoolPropDbl d2alphar_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dTau2` """
 *         return self.thisptr.d2alphar_dTau2()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_263d2alphar_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d2alphar_dTau2", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d2alphar_dTau2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 553, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_263d2alphar_dTau2)) {
        __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(2, 553, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 553, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":555
 *     cpdef CoolPropDbl d2alphar_dTau2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dTau2` """
 *         return self.thisptr.d2alphar_dTau2()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alphar_dTau3(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dTau3` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d2alphar_dTau2();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 555, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":553
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dDelta_dTau` """
 *         return self.thisptr.d2alphar_dDelta_dTau()
 *     cpdef CoolPropDbl d2alphar_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dTau2` """
 *         return self.thisptr.d2alphar_dTau2()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d2alphar_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_263d2alphar_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_262d2alphar_dTau2[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dTau2` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_263d2alphar_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d2alphar_dTau2 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_262d2alphar_dTau2(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_262d2alphar_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d2alphar_dTau2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dTau2(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 553, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 553, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d2alphar_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":556
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dTau2` """
 *         return self.thisptr.d2alphar_dTau2()
 *     cpdef CoolPropDbl d3alphar_dTau3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dTau3` """
 *         return self.thisptr.d3alphar_dTau3()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_265d3alphar_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alphar_dTau3", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alphar_dTau3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 556, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_265d3alphar_dTau3)) {
        __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(2, 556, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 556, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":558
 *     cpdef CoolPropDbl d3alphar_dTau3(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dTau3` """
 *         return self.thisptr.d3alphar_dTau3()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alphar_dDelta_dTau2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta_dTau2` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alphar_dTau3();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 558, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":556
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d2alphar_dTau2` """
 *         return self.thisptr.d2alphar_dTau2()
 *     cpdef CoolPropDbl d3alphar_dTau3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dTau3` """
 *         return self.thisptr.d3alphar_dTau3()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alphar_dTau3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_265d3alphar_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_264d3alphar_dTau3[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dTau3` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_265d3alphar_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alphar_dTau3 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_264d3alphar_dTau3(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_264d3alphar_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alphar_dTau3", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dTau3(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 556, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alphar_dTau3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":559
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dTau3` """
 *         return self.thisptr.d3alphar_dTau3()
 *     cpdef CoolPropDbl d3alphar_dDelta_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta_dTau2` """
 *         return self.thisptr.d3alphar_dDelta_dTau2()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_267d3alphar_dDelta_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alphar_dDelta_dTau2", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alphar_dDelta_dTau2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 559, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_267d3alphar_dDelta_dTau2)) {
        __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(2, 559, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 559, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":561
 *     cpdef CoolPropDbl d3alphar_dDelta_dTau2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta_dTau2` """
 *         return self.thisptr.d3alphar_dDelta_dTau2()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alphar_dDelta2_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta2_dTau` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alphar_dDelta_dTau2();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 561, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":559
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dTau3` """
 *         return self.thisptr.d3alphar_dTau3()
 *     cpdef CoolPropDbl d3alphar_dDelta_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta_dTau2` """
 *         return self.thisptr.d3alphar_dDelta_dTau2()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alphar_dDelta_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_267d3alphar_dDelta_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_266d3alphar_dDelta_dTau2[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta_dTau2` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_267d3alphar_dDelta_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alphar_dDelta_dTau2 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_266d3alphar_dDelta_dTau2(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_266d3alphar_dDelta_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alphar_dDelta_dTau2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta_dTau2(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 559, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alphar_dDelta_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":562
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta_dTau2` """
 *         return self.thisptr.d3alphar_dDelta_dTau2()
 *     cpdef CoolPropDbl d3alphar_dDelta2_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta2_dTau` """
 *         return self.thisptr.d3alphar_dDelta2_dTau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_269d3alphar_dDelta2_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alphar_dDelta2_dTau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alphar_dDelta2_dTau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 562, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_269d3alphar_dDelta2_dTau)) {
        __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(2, 562, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 562, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":564
 *     cpdef CoolPropDbl d3alphar_dDelta2_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta2_dTau` """
 *         return self.thisptr.d3alphar_dDelta2_dTau()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d3alphar_dDelta3(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta3` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alphar_dDelta2_dTau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 564, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":562
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta_dTau2` """
 *         return self.thisptr.d3alphar_dDelta_dTau2()
 *     cpdef CoolPropDbl d3alphar_dDelta2_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta2_dTau` """
 *         return self.thisptr.d3alphar_dDelta2_dTau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alphar_dDelta2_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_269d3alphar_dDelta2_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_268d3alphar_dDelta2_dTau[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta2_dTau` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_269d3alphar_dDelta2_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alphar_dDelta2_dTau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_268d3alphar_dDelta2_dTau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_268d3alphar_dDelta2_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alphar_dDelta2_dTau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta2_dTau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 562, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alphar_dDelta2_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":565
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta2_dTau` """
 *         return self.thisptr.d3alphar_dDelta2_dTau()
 *     cpdef CoolPropDbl d3alphar_dDelta3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta3` """
 *         return self.thisptr.d3alphar_dDelta3()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_271d3alphar_dDelta3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d3alphar_dDelta3", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d3alphar_dDelta3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 565, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_271d3alphar_dDelta3)) {
        __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(2, 565, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 565, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":567
 *     cpdef CoolPropDbl d3alphar_dDelta3(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta3` """
 *         return self.thisptr.d3alphar_dDelta3()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d4alphar_dTau4(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dTau4` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d3alphar_dDelta3();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 567, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":565
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta2_dTau` """
 *         return self.thisptr.d3alphar_dDelta2_dTau()
 *     cpdef CoolPropDbl d3alphar_dDelta3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta3` """
 *         return self.thisptr.d3alphar_dDelta3()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d3alphar_dDelta3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_271d3alphar_dDelta3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_270d3alphar_dDelta3[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta3` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_271d3alphar_dDelta3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d3alphar_dDelta3 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_270d3alphar_dDelta3(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_270d3alphar_dDelta3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d3alphar_dDelta3", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta3(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 565, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d3alphar_dDelta3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":568
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta3` """
 *         return self.thisptr.d3alphar_dDelta3()
 *     cpdef CoolPropDbl d4alphar_dTau4(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dTau4` """
 *         return self.thisptr.d4alphar_dTau4()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_273d4alphar_dTau4(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dTau4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d4alphar_dTau4", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d4alphar_dTau4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 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_8CoolProp_8CoolProp_13AbstractState_273d4alphar_dTau4)) {
        __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(2, 568, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 568, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":570
 *     cpdef CoolPropDbl d4alphar_dTau4(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dTau4` """
 *         return self.thisptr.d4alphar_dTau4()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d4alphar_dDelta_dTau3(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta_dTau3` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d4alphar_dTau4();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 570, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":568
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d3alphar_dDelta3` """
 *         return self.thisptr.d3alphar_dDelta3()
 *     cpdef CoolPropDbl d4alphar_dTau4(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dTau4` """
 *         return self.thisptr.d4alphar_dTau4()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d4alphar_dTau4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_273d4alphar_dTau4(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_272d4alphar_dTau4[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dTau4` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_273d4alphar_dTau4(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d4alphar_dTau4 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_272d4alphar_dTau4(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_272d4alphar_dTau4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d4alphar_dTau4", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dTau4(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 568, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 568, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d4alphar_dTau4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":571
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dTau4` """
 *         return self.thisptr.d4alphar_dTau4()
 *     cpdef CoolPropDbl d4alphar_dDelta_dTau3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta_dTau3` """
 *         return self.thisptr.d4alphar_dDelta_dTau3()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_275d4alphar_dDelta_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d4alphar_dDelta_dTau3", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d4alphar_dDelta_dTau3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 571, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_275d4alphar_dDelta_dTau3)) {
        __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(2, 571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 571, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":573
 *     cpdef CoolPropDbl d4alphar_dDelta_dTau3(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta_dTau3` """
 *         return self.thisptr.d4alphar_dDelta_dTau3()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d4alphar_dDelta2_dTau2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta2_dTau2` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d4alphar_dDelta_dTau3();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 573, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":571
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dTau4` """
 *         return self.thisptr.d4alphar_dTau4()
 *     cpdef CoolPropDbl d4alphar_dDelta_dTau3(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta_dTau3` """
 *         return self.thisptr.d4alphar_dDelta_dTau3()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d4alphar_dDelta_dTau3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_275d4alphar_dDelta_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_274d4alphar_dDelta_dTau3[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta_dTau3` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_275d4alphar_dDelta_dTau3(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d4alphar_dDelta_dTau3 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_274d4alphar_dDelta_dTau3(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_274d4alphar_dDelta_dTau3(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d4alphar_dDelta_dTau3", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta_dTau3(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 571, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d4alphar_dDelta_dTau3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":574
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta_dTau3` """
 *         return self.thisptr.d4alphar_dDelta_dTau3()
 *     cpdef CoolPropDbl d4alphar_dDelta2_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta2_dTau2` """
 *         return self.thisptr.d4alphar_dDelta2_dTau2()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_277d4alphar_dDelta2_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta2_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d4alphar_dDelta2_dTau2", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d4alphar_dDelta2_dTau2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 574, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_277d4alphar_dDelta2_dTau2)) {
        __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(2, 574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 574, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":576
 *     cpdef CoolPropDbl d4alphar_dDelta2_dTau2(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta2_dTau2` """
 *         return self.thisptr.d4alphar_dDelta2_dTau2()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d4alphar_dDelta3_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta3_dTau` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d4alphar_dDelta2_dTau2();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 576, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":574
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta_dTau3` """
 *         return self.thisptr.d4alphar_dDelta_dTau3()
 *     cpdef CoolPropDbl d4alphar_dDelta2_dTau2(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta2_dTau2` """
 *         return self.thisptr.d4alphar_dDelta2_dTau2()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d4alphar_dDelta2_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_277d4alphar_dDelta2_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_276d4alphar_dDelta2_dTau2[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta2_dTau2` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_277d4alphar_dDelta2_dTau2(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d4alphar_dDelta2_dTau2 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_276d4alphar_dDelta2_dTau2(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_276d4alphar_dDelta2_dTau2(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d4alphar_dDelta2_dTau2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta2_dTau2(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 574, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d4alphar_dDelta2_dTau2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":577
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta2_dTau2` """
 *         return self.thisptr.d4alphar_dDelta2_dTau2()
 *     cpdef CoolPropDbl d4alphar_dDelta3_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta3_dTau` """
 *         return self.thisptr.d4alphar_dDelta3_dTau()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_279d4alphar_dDelta3_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta3_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d4alphar_dDelta3_dTau", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d4alphar_dDelta3_dTau); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_279d4alphar_dDelta3_dTau)) {
        __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(2, 577, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 577, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":579
 *     cpdef CoolPropDbl d4alphar_dDelta3_dTau(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta3_dTau` """
 *         return self.thisptr.d4alphar_dDelta3_dTau()             # <<<<<<<<<<<<<<
 *     cpdef CoolPropDbl d4alphar_dDelta4(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta4` """
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d4alphar_dDelta3_dTau();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 579, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":577
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta2_dTau2` """
 *         return self.thisptr.d4alphar_dDelta2_dTau2()
 *     cpdef CoolPropDbl d4alphar_dDelta3_dTau(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta3_dTau` """
 *         return self.thisptr.d4alphar_dDelta3_dTau()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d4alphar_dDelta3_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_279d4alphar_dDelta3_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_278d4alphar_dDelta3_dTau[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta3_dTau` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_279d4alphar_dDelta3_dTau(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d4alphar_dDelta3_dTau (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_278d4alphar_dDelta3_dTau(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_278d4alphar_dDelta3_dTau(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d4alphar_dDelta3_dTau", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta3_dTau(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 577, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d4alphar_dDelta3_dTau", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "AbstractState.pyx":580
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta3_dTau` """
 *         return self.thisptr.d4alphar_dDelta3_dTau()
 *     cpdef CoolPropDbl d4alphar_dDelta4(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta4` """
 *         return self.thisptr.d4alphar_dDelta4()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_281d4alphar_dDelta4(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, int __pyx_skip_dispatch) {
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_5;
  __Pyx_RefNannySetupContext("d4alphar_dDelta4", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_d4alphar_dDelta4); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 580, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_281d4alphar_dDelta4)) {
        __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(2, 580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 580, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "AbstractState.pyx":582
 *     cpdef CoolPropDbl d4alphar_dDelta4(self) except *:
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta4` """
 *         return self.thisptr.d4alphar_dDelta4()             # <<<<<<<<<<<<<<
 */
  try {
    __pyx_t_5 = __pyx_v_self->thisptr->d4alphar_dDelta4();
  } catch(...) {
    try { throw; } catch(const std::exception& exn) {PyErr_SetString(__pyx_builtin_ValueError, exn.what());} catch(...) { PyErr_SetNone(__pyx_builtin_ValueError); }
    __PYX_ERR(2, 582, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "AbstractState.pyx":580
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta3_dTau` """
 *         return self.thisptr.d4alphar_dDelta3_dTau()
 *     cpdef CoolPropDbl d4alphar_dDelta4(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta4` """
 *         return self.thisptr.d4alphar_dDelta4()
 */

  /* 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("CoolProp.CoolProp.AbstractState.d4alphar_dDelta4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_281d4alphar_dDelta4(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_13AbstractState_280d4alphar_dDelta4[] = " Get the residual reduced Helmholtz energy - wrapper of c++ function :cpapi:`CoolProp::AbstractState::d4alphar_dDelta4` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_281d4alphar_dDelta4(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("d4alphar_dDelta4 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_13AbstractState_280d4alphar_dDelta4(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_280d4alphar_dDelta4(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("d4alphar_dDelta4", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta4(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 580, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.AbstractState.d4alphar_dDelta4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __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_8CoolProp_8CoolProp_13AbstractState_331__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_331__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_8CoolProp_8CoolProp_13AbstractState_330__reduce_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_330__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(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__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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(4, 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("CoolProp.CoolProp.AbstractState.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __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_8CoolProp_8CoolProp_13AbstractState_333__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13AbstractState_333__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_8CoolProp_8CoolProp_13AbstractState_332__setstate_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_13AbstractState_332__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(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__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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(4, 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("CoolProp.CoolProp.AbstractState.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":122
 * include "AbstractState.pyx"
 * 
 * def set_reference_state(string FluidName, *args):             # <<<<<<<<<<<<<<
 *     """
 *     Accepts one of two signatures:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_9set_reference_state(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_8set_reference_state[] = "\n    Accepts one of two signatures:\n\n    Type #1 (A Python wrapper of :cpapi:`CoolProp::set_reference_stateS`):\n\n    set_reference_state(FluidName,reference_state)\n\n    FluidName The name of the fluid\n    param reference_state The reference state to use, one of\n\n    ==========   ===========================================\n    ``IIR``      (h=200 kJ/kg, s=1 kJ/kg/K at 0C sat. liq.)\n    ``ASHRAE``   (h=0,s=0 @ -40C sat liq)\n    ``NBP``      (h=0,s=0 @ 1.0 bar sat liq.)\n    ==========   ===========================================\n\n    Type #2 (A Python wrapper of :cpapi:`CoolProp::set_reference_stateD`):\n\n    set_reference_state(FluidName,T0,rho0,h0,s0)\n\n    ``FluidName`` The name of the fluid\n\n    ``T0`` The temperature at the reference point [K]\n\n    ``rho0`` The density at the reference point [kg/m^3]\n\n    ``h0`` The enthalpy at the reference point [J/kg]\n\n    ``s0`` The entropy at the reference point [J/kg]\n    ";
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_9set_reference_state = {"set_reference_state", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_9set_reference_state, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_8set_reference_state};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_9set_reference_state(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_FluidName;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_reference_state (wrapper)", 0);
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args));
    if (unlikely(!__pyx_v_args)) {
      __Pyx_RefNannyFinishContext();
      return NULL;
    }
    __Pyx_GOTREF(__pyx_v_args);
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_FluidName,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        default:
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_FluidName)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "set_reference_state") < 0)) __PYX_ERR(0, 122, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_FluidName = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 122, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_reference_state", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 122, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
  __Pyx_AddTraceback("CoolProp.CoolProp.set_reference_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_8set_reference_state(__pyx_self, __pyx_v_FluidName, __pyx_v_args);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_8set_reference_state(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_FluidName, PyObject *__pyx_v_args) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  double __pyx_t_5;
  double __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  __Pyx_RefNannySetupContext("set_reference_state", 0);

  /* "CoolProp/CoolProp.pyx":157
 *     cdef int retval
 * 
 *     if len(args) == 1:             # <<<<<<<<<<<<<<
 *         _set_reference_stateS(FluidName, args[0])
 *     elif len(args) == 4:
 */
  __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 157, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 == 1) != 0);
  if (__pyx_t_2) {

    /* "CoolProp/CoolProp.pyx":158
 * 
 *     if len(args) == 1:
 *         _set_reference_stateS(FluidName, args[0])             # <<<<<<<<<<<<<<
 *     elif len(args) == 4:
 *         _set_reference_stateD(FluidName, args[0], args[1], args[2], args[3])
 */
    __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 158, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    try {
      CoolProp::set_reference_stateS(__pyx_v_FluidName, __pyx_t_4);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 158, __pyx_L1_error)
    }

    /* "CoolProp/CoolProp.pyx":157
 *     cdef int retval
 * 
 *     if len(args) == 1:             # <<<<<<<<<<<<<<
 *         _set_reference_stateS(FluidName, args[0])
 *     elif len(args) == 4:
 */
    goto __pyx_L3;
  }

  /* "CoolProp/CoolProp.pyx":159
 *     if len(args) == 1:
 *         _set_reference_stateS(FluidName, args[0])
 *     elif len(args) == 4:             # <<<<<<<<<<<<<<
 *         _set_reference_stateD(FluidName, args[0], args[1], args[2], args[3])
 *     else:
 */
  __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 159, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 == 4) != 0);
  if (likely(__pyx_t_2)) {

    /* "CoolProp/CoolProp.pyx":160
 *         _set_reference_stateS(FluidName, args[0])
 *     elif len(args) == 4:
 *         _set_reference_stateD(FluidName, args[0], args[1], args[2], args[3])             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError('Invalid number of inputs')
 */
    __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    try {
      CoolProp::set_reference_stateD(__pyx_v_FluidName, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 160, __pyx_L1_error)
    }

    /* "CoolProp/CoolProp.pyx":159
 *     if len(args) == 1:
 *         _set_reference_stateS(FluidName, args[0])
 *     elif len(args) == 4:             # <<<<<<<<<<<<<<
 *         _set_reference_stateD(FluidName, args[0], args[1], args[2], args[3])
 *     else:
 */
    goto __pyx_L3;
  }

  /* "CoolProp/CoolProp.pyx":162
 *         _set_reference_stateD(FluidName, args[0], args[1], args[2], args[3])
 *     else:
 *         raise ValueError('Invalid number of inputs')             # <<<<<<<<<<<<<<
 * 
 * # cpdef long get_Fluid_index(string_like Fluid):
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 162, __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, 162, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "CoolProp/CoolProp.pyx":122
 * include "AbstractState.pyx"
 * 
 * def set_reference_state(string FluidName, *args):             # <<<<<<<<<<<<<<
 *     """
 *     Accepts one of two signatures:
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("CoolProp.CoolProp.set_reference_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":195
 * #         return val
 * 
 * cpdef tuple generate_update_pair(constants_header.parameters key1, double value1, constants_header.parameters key2, double value2):             # <<<<<<<<<<<<<<
 *     """
 *     This function will generate an input pair to the update() function given the key, value pairs for both inputs
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_11generate_update_pair(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_generate_update_pair(CoolProp::parameters __pyx_v_key1, double __pyx_v_value1, CoolProp::parameters __pyx_v_key2, double __pyx_v_value2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  CoolProp::input_pairs __pyx_v_pair;
  double __pyx_v_out1;
  double __pyx_v_out2;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  CoolProp::input_pairs __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("generate_update_pair", 0);

  /* "CoolProp/CoolProp.pyx":200
 *     """
 *     cdef constants_header.input_pairs pair
 *     cdef double out1 = -1000000000, out2 = -100000000000             # <<<<<<<<<<<<<<
 *     pair = _generate_update_pair(key1, value1, key2, value2, out1, out2)
 *     return pair, out1, out2
 */
  __pyx_v_out1 = -1000000000.0;
  __pyx_v_out2 = -100000000000.0;

  /* "CoolProp/CoolProp.pyx":201
 *     cdef constants_header.input_pairs pair
 *     cdef double out1 = -1000000000, out2 = -100000000000
 *     pair = _generate_update_pair(key1, value1, key2, value2, out1, out2)             # <<<<<<<<<<<<<<
 *     return pair, out1, out2
 * 
 */
  try {
    __pyx_t_1 = CoolProp::generate_update_pair(__pyx_v_key1, __pyx_v_value1, __pyx_v_key2, __pyx_v_value2, __pyx_v_out1, __pyx_v_out2);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 201, __pyx_L1_error)
  }
  __pyx_v_pair = __pyx_t_1;

  /* "CoolProp/CoolProp.pyx":202
 *     cdef double out1 = -1000000000, out2 = -100000000000
 *     pair = _generate_update_pair(key1, value1, key2, value2, out1, out2)
 *     return pair, out1, out2             # <<<<<<<<<<<<<<
 * 
 * cpdef string get_config_as_json_string():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyInt_From_CoolProp_3a__3a_input_pairs(__pyx_v_pair); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_out1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_out2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":195
 * #         return val
 * 
 * cpdef tuple generate_update_pair(constants_header.parameters key1, double value1, constants_header.parameters key2, double value2):             # <<<<<<<<<<<<<<
 *     """
 *     This function will generate an input pair to the update() function given the key, value pairs for both inputs
 */

  /* 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("CoolProp.CoolProp.generate_update_pair", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_11generate_update_pair(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_10generate_update_pair[] = "\n    This function will generate an input pair to the update() function given the key, value pairs for both inputs\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_11generate_update_pair(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CoolProp::parameters __pyx_v_key1;
  double __pyx_v_value1;
  CoolProp::parameters __pyx_v_key2;
  double __pyx_v_value2;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("generate_update_pair (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key1,&__pyx_n_s_value1,&__pyx_n_s_key2,&__pyx_n_s_value2,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_key1)) != 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_value1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("generate_update_pair", 1, 4, 4, 1); __PYX_ERR(0, 195, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("generate_update_pair", 1, 4, 4, 2); __PYX_ERR(0, 195, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("generate_update_pair", 1, 4, 4, 3); __PYX_ERR(0, 195, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "generate_update_pair") < 0)) __PYX_ERR(0, 195, __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_key1 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L3_error)
    __pyx_v_value1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_value1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L3_error)
    __pyx_v_key2 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L3_error)
    __pyx_v_value2 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_value2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("generate_update_pair", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 195, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.generate_update_pair", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_10generate_update_pair(__pyx_self, __pyx_v_key1, __pyx_v_value1, __pyx_v_key2, __pyx_v_value2);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_10generate_update_pair(CYTHON_UNUSED PyObject *__pyx_self, CoolProp::parameters __pyx_v_key1, double __pyx_v_value1, CoolProp::parameters __pyx_v_key2, double __pyx_v_value2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("generate_update_pair", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_generate_update_pair(__pyx_v_key1, __pyx_v_value1, __pyx_v_key2, __pyx_v_value2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __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("CoolProp.CoolProp.generate_update_pair", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":204
 *     return pair, out1, out2
 * 
 * cpdef string get_config_as_json_string():             # <<<<<<<<<<<<<<
 *     """
 *     Obtain a json formulation of the internal configuration in CoolProp
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_13get_config_as_json_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_config_as_json_string(CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  __Pyx_RefNannySetupContext("get_config_as_json_string", 0);

  /* "CoolProp/CoolProp.pyx":210
 *     Values can be set by passing a modified json library (converted to string) to set_config_as_json_string
 *     """
 *     return _get_config_as_json_string()             # <<<<<<<<<<<<<<
 * 
 * cpdef string config_key_description(string key):
 */
  try {
    __pyx_t_1 = CoolProp::get_config_as_json_string();
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 210, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":204
 *     return pair, out1, out2
 * 
 * cpdef string get_config_as_json_string():             # <<<<<<<<<<<<<<
 *     """
 *     Obtain a json formulation of the internal configuration in CoolProp
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_config_as_json_string", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13get_config_as_json_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_12get_config_as_json_string[] = "\n    Obtain a json formulation of the internal configuration in CoolProp\n\n    Values can be set by passing a modified json library (converted to string) to set_config_as_json_string\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_13get_config_as_json_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_config_as_json_string (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_12get_config_as_json_string(__pyx_self);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_12get_config_as_json_string(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_config_as_json_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_8CoolProp_8CoolProp_get_config_as_json_string(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __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("CoolProp.CoolProp.get_config_as_json_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":212
 *     return _get_config_as_json_string()
 * 
 * cpdef string config_key_description(string key):             # <<<<<<<<<<<<<<
 *     """
 *     Obtain the string description for a configuration key.  Python wrapper of C++ function :cpapi:`CoolProp::config_key_description`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_15config_key_description(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_config_key_description(std::string __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  __Pyx_RefNannySetupContext("config_key_description", 0);

  /* "CoolProp/CoolProp.pyx":216
 *     Obtain the string description for a configuration key.  Python wrapper of C++ function :cpapi:`CoolProp::config_key_description`
 *     """
 *     return _config_key_description(key)             # <<<<<<<<<<<<<<
 * 
 * cpdef set_config_as_json_string(string s):
 */
  try {
    __pyx_t_1 = CoolProp::config_key_description(__pyx_v_key);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 216, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":212
 *     return _get_config_as_json_string()
 * 
 * cpdef string config_key_description(string key):             # <<<<<<<<<<<<<<
 *     """
 *     Obtain the string description for a configuration key.  Python wrapper of C++ function :cpapi:`CoolProp::config_key_description`
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.config_key_description", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15config_key_description(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_14config_key_description[] = "\n    Obtain the string description for a configuration key.  Python wrapper of C++ function :cpapi:`CoolProp::config_key_description`\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_15config_key_description(PyObject *__pyx_self, PyObject *__pyx_arg_key) {
  std::string __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("config_key_description (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = __pyx_convert_string_from_py_std__in_string(__pyx_arg_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 212, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.config_key_description", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_14config_key_description(__pyx_self, ((std::string)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_14config_key_description(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("config_key_description", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_8CoolProp_8CoolProp_config_key_description(__pyx_v_key, 0)); 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;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.config_key_description", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":218
 *     return _config_key_description(key)
 * 
 * cpdef set_config_as_json_string(string s):             # <<<<<<<<<<<<<<
 *     """
 *     Set the internal configuration in CoolProp from a json data string
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_17set_config_as_json_string(PyObject *__pyx_self, PyObject *__pyx_arg_s); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_as_json_string(std::string __pyx_v_s, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_as_json_string", 0);

  /* "CoolProp/CoolProp.pyx":224
 *     Current state can be obtained by calling get_config_as_json_string
 *     """
 *     _set_config_as_json_string(s)             # <<<<<<<<<<<<<<
 * 
 * cpdef set_config_double(constants_header.configuration_keys key, double value):
 */
  try {
    CoolProp::set_config_as_json_string(__pyx_v_s);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 224, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":218
 *     return _config_key_description(key)
 * 
 * cpdef set_config_as_json_string(string s):             # <<<<<<<<<<<<<<
 *     """
 *     Set the internal configuration in CoolProp from a json data string
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_17set_config_as_json_string(PyObject *__pyx_self, PyObject *__pyx_arg_s); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_16set_config_as_json_string[] = "\n    Set the internal configuration in CoolProp from a json data string\n\n    Current state can be obtained by calling get_config_as_json_string\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_17set_config_as_json_string(PyObject *__pyx_self, PyObject *__pyx_arg_s) {
  std::string __pyx_v_s;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_as_json_string (wrapper)", 0);
  assert(__pyx_arg_s); {
    __pyx_v_s = __pyx_convert_string_from_py_std__in_string(__pyx_arg_s); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 218, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.set_config_as_json_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_16set_config_as_json_string(__pyx_self, ((std::string)__pyx_v_s));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_16set_config_as_json_string(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_config_as_json_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_set_config_as_json_string(__pyx_v_s, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __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("CoolProp.CoolProp.set_config_as_json_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":226
 *     _set_config_as_json_string(s)
 * 
 * cpdef set_config_double(constants_header.configuration_keys key, double value):             # <<<<<<<<<<<<<<
 *     """ Set configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_double` """
 *     _set_config_double(key, value)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_19set_config_double(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_double(configuration_keys __pyx_v_key, double __pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_double", 0);

  /* "CoolProp/CoolProp.pyx":228
 * cpdef set_config_double(constants_header.configuration_keys key, double value):
 *     """ Set configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_double` """
 *     _set_config_double(key, value)             # <<<<<<<<<<<<<<
 * 
 * cpdef set_config_string(constants_header.configuration_keys key, string value):
 */
  try {
    CoolProp::set_config_double(__pyx_v_key, __pyx_v_value);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 228, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":226
 *     _set_config_as_json_string(s)
 * 
 * cpdef set_config_double(constants_header.configuration_keys key, double value):             # <<<<<<<<<<<<<<
 *     """ Set configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_double` """
 *     _set_config_double(key, value)
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19set_config_double(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_18set_config_double[] = " Set configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_double` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_19set_config_double(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  configuration_keys __pyx_v_key;
  double __pyx_v_value;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_double (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_value,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_key)) != 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_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_config_double", 1, 2, 2, 1); __PYX_ERR(0, 226, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_config_double") < 0)) __PYX_ERR(0, 226, __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_key = ((configuration_keys)__Pyx_PyInt_As_configuration_keys(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 226, __pyx_L3_error)
    __pyx_v_value = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_value == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 226, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_config_double", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 226, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.set_config_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_18set_config_double(__pyx_self, __pyx_v_key, __pyx_v_value);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_18set_config_double(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key, double __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_config_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_set_config_double(__pyx_v_key, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __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("CoolProp.CoolProp.set_config_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":230
 *     _set_config_double(key, value)
 * 
 * cpdef set_config_string(constants_header.configuration_keys key, string value):             # <<<<<<<<<<<<<<
 *     """ Set a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_string` """
 *     _set_config_string(key, value)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_21set_config_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_string(configuration_keys __pyx_v_key, std::string __pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_string", 0);

  /* "CoolProp/CoolProp.pyx":232
 * cpdef set_config_string(constants_header.configuration_keys key, string value):
 *     """ Set a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_string` """
 *     _set_config_string(key, value)             # <<<<<<<<<<<<<<
 * 
 * cpdef set_config_bool(constants_header.configuration_keys key, bint value):
 */
  try {
    CoolProp::set_config_string(__pyx_v_key, __pyx_v_value);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 232, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":230
 *     _set_config_double(key, value)
 * 
 * cpdef set_config_string(constants_header.configuration_keys key, string value):             # <<<<<<<<<<<<<<
 *     """ Set a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_string` """
 *     _set_config_string(key, value)
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_21set_config_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_20set_config_string[] = " Set a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_string` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_21set_config_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  configuration_keys __pyx_v_key;
  std::string __pyx_v_value;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_value,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_key)) != 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_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_config_string", 1, 2, 2, 1); __PYX_ERR(0, 230, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_config_string") < 0)) __PYX_ERR(0, 230, __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_key = ((configuration_keys)__Pyx_PyInt_As_configuration_keys(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L3_error)
    __pyx_v_value = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_config_string", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 230, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.set_config_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_20set_config_string(__pyx_self, __pyx_v_key, __pyx_v_value);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_20set_config_string(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key, std::string __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_config_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_set_config_string(__pyx_v_key, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __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("CoolProp.CoolProp.set_config_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":234
 *     _set_config_string(key, value)
 * 
 * cpdef set_config_bool(constants_header.configuration_keys key, bint value):             # <<<<<<<<<<<<<<
 *     """ Set a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_bool` """
 *     _set_config_bool(key, value)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_23set_config_bool(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_config_bool(configuration_keys __pyx_v_key, int __pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_bool", 0);

  /* "CoolProp/CoolProp.pyx":236
 * cpdef set_config_bool(constants_header.configuration_keys key, bint value):
 *     """ Set a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_bool` """
 *     _set_config_bool(key, value)             # <<<<<<<<<<<<<<
 * 
 * cpdef double get_config_double(constants_header.configuration_keys key):
 */
  try {
    CoolProp::set_config_bool(__pyx_v_key, __pyx_v_value);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 236, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":234
 *     _set_config_string(key, value)
 * 
 * cpdef set_config_bool(constants_header.configuration_keys key, bint value):             # <<<<<<<<<<<<<<
 *     """ Set a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_bool` """
 *     _set_config_bool(key, value)
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_23set_config_bool(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_22set_config_bool[] = " Set a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::set_config_bool` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_23set_config_bool(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  configuration_keys __pyx_v_key;
  int __pyx_v_value;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_config_bool (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_value,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_key)) != 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_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_config_bool", 1, 2, 2, 1); __PYX_ERR(0, 234, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_config_bool") < 0)) __PYX_ERR(0, 234, __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_key = ((configuration_keys)__Pyx_PyInt_As_configuration_keys(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 234, __pyx_L3_error)
    __pyx_v_value = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 234, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_config_bool", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 234, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.set_config_bool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_22set_config_bool(__pyx_self, __pyx_v_key, __pyx_v_value);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_22set_config_bool(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key, int __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_config_bool", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_set_config_bool(__pyx_v_key, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __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("CoolProp.CoolProp.set_config_bool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":238
 *     _set_config_bool(key, value)
 * 
 * cpdef double get_config_double(constants_header.configuration_keys key):             # <<<<<<<<<<<<<<
 *     """ Get a configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_double` """
 *     return _get_config_double(key)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_25get_config_double(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_get_config_double(configuration_keys __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("get_config_double", 0);

  /* "CoolProp/CoolProp.pyx":240
 * cpdef double get_config_double(constants_header.configuration_keys key):
 *     """ Get a configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_double` """
 *     return _get_config_double(key)             # <<<<<<<<<<<<<<
 * 
 * cpdef string get_config_string(constants_header.configuration_keys key):
 */
  try {
    __pyx_t_1 = CoolProp::get_config_double(__pyx_v_key);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 240, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":238
 *     _set_config_bool(key, value)
 * 
 * cpdef double get_config_double(constants_header.configuration_keys key):             # <<<<<<<<<<<<<<
 *     """ Get a configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_double` """
 *     return _get_config_double(key)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_config_double", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_25get_config_double(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_24get_config_double[] = " Get a configuration key that is a double-precision float;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_double` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_25get_config_double(PyObject *__pyx_self, PyObject *__pyx_arg_key) {
  configuration_keys __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_config_double (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = ((configuration_keys)__Pyx_PyInt_As_configuration_keys(__pyx_arg_key)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 238, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_config_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_24get_config_double(__pyx_self, ((configuration_keys)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_24get_config_double(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_config_double", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_8CoolProp_8CoolProp_get_config_double(__pyx_v_key, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __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("CoolProp.CoolProp.get_config_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":242
 *     return _get_config_double(key)
 * 
 * cpdef string get_config_string(constants_header.configuration_keys key):             # <<<<<<<<<<<<<<
 *     """ Get a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_string` """
 *     return _get_config_string(key)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_27get_config_string(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_config_string(configuration_keys __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  __Pyx_RefNannySetupContext("get_config_string", 0);

  /* "CoolProp/CoolProp.pyx":244
 * cpdef string get_config_string(constants_header.configuration_keys key):
 *     """ Get a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_string` """
 *     return _get_config_string(key)             # <<<<<<<<<<<<<<
 * 
 * cpdef bint get_config_bool(constants_header.configuration_keys key):
 */
  try {
    __pyx_t_1 = CoolProp::get_config_string(__pyx_v_key);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 244, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":242
 *     return _get_config_double(key)
 * 
 * cpdef string get_config_string(constants_header.configuration_keys key):             # <<<<<<<<<<<<<<
 *     """ Get a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_string` """
 *     return _get_config_string(key)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_config_string", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_27get_config_string(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_26get_config_string[] = " Get a configuration key that is a string;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_string` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_27get_config_string(PyObject *__pyx_self, PyObject *__pyx_arg_key) {
  configuration_keys __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_config_string (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = ((configuration_keys)__Pyx_PyInt_As_configuration_keys(__pyx_arg_key)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 242, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_config_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_26get_config_string(__pyx_self, ((configuration_keys)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_26get_config_string(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_config_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_8CoolProp_8CoolProp_get_config_string(__pyx_v_key, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __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("CoolProp.CoolProp.get_config_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":246
 *     return _get_config_string(key)
 * 
 * cpdef bint get_config_bool(constants_header.configuration_keys key):             # <<<<<<<<<<<<<<
 *     """ Get a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_bool` """
 *     return _get_config_bool(key)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_29get_config_bool(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_config_bool(configuration_keys __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("get_config_bool", 0);

  /* "CoolProp/CoolProp.pyx":248
 * cpdef bint get_config_bool(constants_header.configuration_keys key):
 *     """ Get a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_bool` """
 *     return _get_config_bool(key)             # <<<<<<<<<<<<<<
 * 
 * cpdef int get_parameter_index(string key):
 */
  try {
    __pyx_t_1 = CoolProp::get_config_bool(__pyx_v_key);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 248, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":246
 *     return _get_config_string(key)
 * 
 * cpdef bint get_config_bool(constants_header.configuration_keys key):             # <<<<<<<<<<<<<<
 *     """ Get a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_bool` """
 *     return _get_config_bool(key)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_config_bool", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_29get_config_bool(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_28get_config_bool[] = " Get a configuration key that is a boolean;  wrapper of wrapper of C++ function :cpapi:`CoolProp::get_config_bool` ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_29get_config_bool(PyObject *__pyx_self, PyObject *__pyx_arg_key) {
  configuration_keys __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_config_bool (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = ((configuration_keys)__Pyx_PyInt_As_configuration_keys(__pyx_arg_key)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 246, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_config_bool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_28get_config_bool(__pyx_self, ((configuration_keys)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_28get_config_bool(CYTHON_UNUSED PyObject *__pyx_self, configuration_keys __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_config_bool", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_8CoolProp_8CoolProp_get_config_bool(__pyx_v_key, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 246, __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("CoolProp.CoolProp.get_config_bool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":250
 *     return _get_config_bool(key)
 * 
 * cpdef int get_parameter_index(string key):             # <<<<<<<<<<<<<<
 *     return _get_parameter_index(key)
 * 
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_31get_parameter_index(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_parameter_index(std::string __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("get_parameter_index", 0);

  /* "CoolProp/CoolProp.pyx":251
 * 
 * cpdef int get_parameter_index(string key):
 *     return _get_parameter_index(key)             # <<<<<<<<<<<<<<
 * 
 * cpdef int get_phase_index(string key):
 */
  try {
    __pyx_t_1 = CoolProp::get_parameter_index(__pyx_v_key);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 251, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":250
 *     return _get_config_bool(key)
 * 
 * cpdef int get_parameter_index(string key):             # <<<<<<<<<<<<<<
 *     return _get_parameter_index(key)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_parameter_index", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_31get_parameter_index(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_31get_parameter_index(PyObject *__pyx_self, PyObject *__pyx_arg_key) {
  std::string __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_parameter_index (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = __pyx_convert_string_from_py_std__in_string(__pyx_arg_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 250, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_parameter_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_30get_parameter_index(__pyx_self, ((std::string)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_30get_parameter_index(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_parameter_index", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_8CoolProp_8CoolProp_get_parameter_index(__pyx_v_key, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __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("CoolProp.CoolProp.get_parameter_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":253
 *     return _get_parameter_index(key)
 * 
 * cpdef int get_phase_index(string key):             # <<<<<<<<<<<<<<
 *     return _get_phase_index(key)
 * 
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_33get_phase_index(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_phase_index(std::string __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("get_phase_index", 0);

  /* "CoolProp/CoolProp.pyx":254
 * 
 * cpdef int get_phase_index(string key):
 *     return _get_phase_index(key)             # <<<<<<<<<<<<<<
 * 
 * cpdef string get_parameter_information(int key, string info):
 */
  try {
    __pyx_t_1 = CoolProp::get_phase_index(__pyx_v_key);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 254, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":253
 *     return _get_parameter_index(key)
 * 
 * cpdef int get_phase_index(string key):             # <<<<<<<<<<<<<<
 *     return _get_phase_index(key)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_phase_index", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_33get_phase_index(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_33get_phase_index(PyObject *__pyx_self, PyObject *__pyx_arg_key) {
  std::string __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_phase_index (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = __pyx_convert_string_from_py_std__in_string(__pyx_arg_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 253, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_phase_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_32get_phase_index(__pyx_self, ((std::string)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_32get_phase_index(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_phase_index", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_8CoolProp_8CoolProp_get_phase_index(__pyx_v_key, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 253, __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("CoolProp.CoolProp.get_phase_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":256
 *     return _get_phase_index(key)
 * 
 * cpdef string get_parameter_information(int key, string info):             # <<<<<<<<<<<<<<
 *     return _get_parameter_information(key, info)
 * 
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_35get_parameter_information(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_parameter_information(int __pyx_v_key, std::string __pyx_v_info, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  __Pyx_RefNannySetupContext("get_parameter_information", 0);

  /* "CoolProp/CoolProp.pyx":257
 * 
 * cpdef string get_parameter_information(int key, string info):
 *     return _get_parameter_information(key, info)             # <<<<<<<<<<<<<<
 * 
 * cpdef string get_mixture_binary_pair_data(CAS1, CAS2, key) except *:
 */
  try {
    __pyx_t_1 = CoolProp::get_parameter_information(__pyx_v_key, __pyx_v_info);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 257, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":256
 *     return _get_phase_index(key)
 * 
 * cpdef string get_parameter_information(int key, string info):             # <<<<<<<<<<<<<<
 *     return _get_parameter_information(key, info)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_parameter_information", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_35get_parameter_information(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_35get_parameter_information(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_key;
  std::string __pyx_v_info;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_parameter_information (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_info,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_key)) != 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_info)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_parameter_information", 1, 2, 2, 1); __PYX_ERR(0, 256, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_parameter_information") < 0)) __PYX_ERR(0, 256, __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_key = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_key == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 256, __pyx_L3_error)
    __pyx_v_info = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 256, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_parameter_information", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 256, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_parameter_information", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_34get_parameter_information(__pyx_self, __pyx_v_key, __pyx_v_info);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_34get_parameter_information(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_key, std::string __pyx_v_info) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_parameter_information", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_8CoolProp_8CoolProp_get_parameter_information(__pyx_v_key, __pyx_v_info, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 256, __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("CoolProp.CoolProp.get_parameter_information", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":259
 *     return _get_parameter_information(key, info)
 * 
 * cpdef string get_mixture_binary_pair_data(CAS1, CAS2, key) except *:             # <<<<<<<<<<<<<<
 *     """
 *     Obtain mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::get_mixture_binary_pair_data`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_37get_mixture_binary_pair_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_mixture_binary_pair_data(PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  std::string __pyx_t_3;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("get_mixture_binary_pair_data", 0);

  /* "CoolProp/CoolProp.pyx":263
 *     Obtain mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::get_mixture_binary_pair_data`
 *     """
 *     return _get_mixture_binary_pair_data(CAS1, CAS2, key)             # <<<<<<<<<<<<<<
 * 
 * cpdef set_mixture_binary_pair_data(CAS1, CAS2, key, val):
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
  __pyx_t_2 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
  __pyx_t_3 = __pyx_convert_string_from_py_std__in_string(__pyx_v_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
  try {
    __pyx_t_4 = CoolProp::get_mixture_binary_pair_data(__pyx_t_1, __pyx_t_2, __pyx_t_3);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":259
 *     return _get_parameter_information(key, info)
 * 
 * cpdef string get_mixture_binary_pair_data(CAS1, CAS2, key) except *:             # <<<<<<<<<<<<<<
 *     """
 *     Obtain mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::get_mixture_binary_pair_data`
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_mixture_binary_pair_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_37get_mixture_binary_pair_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_36get_mixture_binary_pair_data[] = "\n    Obtain mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::get_mixture_binary_pair_data`\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_37get_mixture_binary_pair_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_mixture_binary_pair_data (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_key,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_mixture_binary_pair_data", 1, 3, 3, 1); __PYX_ERR(0, 259, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_mixture_binary_pair_data", 1, 3, 3, 2); __PYX_ERR(0, 259, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_mixture_binary_pair_data") < 0)) __PYX_ERR(0, 259, __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_CAS1 = values[0];
    __pyx_v_CAS2 = values[1];
    __pyx_v_key = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_mixture_binary_pair_data", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 259, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_mixture_binary_pair_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_36get_mixture_binary_pair_data(__pyx_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_key);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_36get_mixture_binary_pair_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_mixture_binary_pair_data", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_get_mixture_binary_pair_data(__pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_key, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 259, __pyx_L1_error)
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.get_mixture_binary_pair_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":265
 *     return _get_mixture_binary_pair_data(CAS1, CAS2, key)
 * 
 * cpdef set_mixture_binary_pair_data(CAS1, CAS2, key, val):             # <<<<<<<<<<<<<<
 *     """
 *     Set mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::set_mixture_binary_pair_data`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_39set_mixture_binary_pair_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_mixture_binary_pair_data(PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_key, PyObject *__pyx_v_val, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  std::string __pyx_t_3;
  double __pyx_t_4;
  __Pyx_RefNannySetupContext("set_mixture_binary_pair_data", 0);

  /* "CoolProp/CoolProp.pyx":269
 *     Set mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::set_mixture_binary_pair_data`
 *     """
 *     _set_mixture_binary_pair_data(CAS1, CAS2, key, val)             # <<<<<<<<<<<<<<
 * 
 * cpdef add_fluids_as_JSON(backend, JSONstring):
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error)
  __pyx_t_2 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error)
  __pyx_t_3 = __pyx_convert_string_from_py_std__in_string(__pyx_v_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error)
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_val); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error)
  try {
    CoolProp::set_mixture_binary_pair_data(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 269, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":265
 *     return _get_mixture_binary_pair_data(CAS1, CAS2, key)
 * 
 * cpdef set_mixture_binary_pair_data(CAS1, CAS2, key, val):             # <<<<<<<<<<<<<<
 *     """
 *     Set mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::set_mixture_binary_pair_data`
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_39set_mixture_binary_pair_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_38set_mixture_binary_pair_data[] = "\n    Set mixture interaction parameter.  Python wrapper of C++ function :cpapi:`CoolProp::set_mixture_binary_pair_data`\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_39set_mixture_binary_pair_data(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_val = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mixture_binary_pair_data (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_key,&__pyx_n_s_val,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_mixture_binary_pair_data", 1, 4, 4, 1); __PYX_ERR(0, 265, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_mixture_binary_pair_data", 1, 4, 4, 2); __PYX_ERR(0, 265, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_mixture_binary_pair_data", 1, 4, 4, 3); __PYX_ERR(0, 265, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_mixture_binary_pair_data") < 0)) __PYX_ERR(0, 265, __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_CAS1 = values[0];
    __pyx_v_CAS2 = values[1];
    __pyx_v_key = values[2];
    __pyx_v_val = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_mixture_binary_pair_data", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 265, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.set_mixture_binary_pair_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_38set_mixture_binary_pair_data(__pyx_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_key, __pyx_v_val);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_38set_mixture_binary_pair_data(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_key, PyObject *__pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_mixture_binary_pair_data", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_set_mixture_binary_pair_data(__pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_key, __pyx_v_val, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 265, __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("CoolProp.CoolProp.set_mixture_binary_pair_data", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":271
 *     _set_mixture_binary_pair_data(CAS1, CAS2, key, val)
 * 
 * cpdef add_fluids_as_JSON(backend, JSONstring):             # <<<<<<<<<<<<<<
 *     """
 *     Add fluids in a JSON-formatted string format. Python wrapper of C++ function :cpapi:`CoolProp::add_fluids_as_JSON`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_41add_fluids_as_JSON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_add_fluids_as_JSON(PyObject *__pyx_v_backend, PyObject *__pyx_v_JSONstring, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  __Pyx_RefNannySetupContext("add_fluids_as_JSON", 0);

  /* "CoolProp/CoolProp.pyx":275
 *     Add fluids in a JSON-formatted string format. Python wrapper of C++ function :cpapi:`CoolProp::add_fluids_as_JSON`
 *     """
 *     _add_fluids_as_JSON(backend, JSONstring)             # <<<<<<<<<<<<<<
 * 
 * cpdef get_global_param_string(string param):
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v_backend); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L1_error)
  __pyx_t_2 = __pyx_convert_string_from_py_std__in_string(__pyx_v_JSONstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L1_error)
  try {
    CoolProp::add_fluids_as_JSON(__pyx_t_1, __pyx_t_2);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 275, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":271
 *     _set_mixture_binary_pair_data(CAS1, CAS2, key, val)
 * 
 * cpdef add_fluids_as_JSON(backend, JSONstring):             # <<<<<<<<<<<<<<
 *     """
 *     Add fluids in a JSON-formatted string format. Python wrapper of C++ function :cpapi:`CoolProp::add_fluids_as_JSON`
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_41add_fluids_as_JSON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_40add_fluids_as_JSON[] = "\n    Add fluids in a JSON-formatted string format. Python wrapper of C++ function :cpapi:`CoolProp::add_fluids_as_JSON`\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_41add_fluids_as_JSON(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_backend = 0;
  PyObject *__pyx_v_JSONstring = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_fluids_as_JSON (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_backend,&__pyx_n_s_JSONstring,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_backend)) != 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_JSONstring)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("add_fluids_as_JSON", 1, 2, 2, 1); __PYX_ERR(0, 271, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_fluids_as_JSON") < 0)) __PYX_ERR(0, 271, __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_backend = values[0];
    __pyx_v_JSONstring = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_fluids_as_JSON", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 271, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.add_fluids_as_JSON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_40add_fluids_as_JSON(__pyx_self, __pyx_v_backend, __pyx_v_JSONstring);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_40add_fluids_as_JSON(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_backend, PyObject *__pyx_v_JSONstring) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("add_fluids_as_JSON", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_add_fluids_as_JSON(__pyx_v_backend, __pyx_v_JSONstring, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __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("CoolProp.CoolProp.add_fluids_as_JSON", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":277
 *     _add_fluids_as_JSON(backend, JSONstring)
 * 
 * cpdef get_global_param_string(string param):             # <<<<<<<<<<<<<<
 *     return _get_global_param_string(param)
 * 
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_43get_global_param_string(PyObject *__pyx_self, PyObject *__pyx_arg_param); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_get_global_param_string(std::string __pyx_v_param, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_global_param_string", 0);

  /* "CoolProp/CoolProp.pyx":278
 * 
 * cpdef get_global_param_string(string param):
 *     return _get_global_param_string(param)             # <<<<<<<<<<<<<<
 * 
 * cpdef is_trivial_parameter(int key):
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_1 = CoolProp::get_global_param_string(__pyx_v_param);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 278, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":277
 *     _add_fluids_as_JSON(backend, JSONstring)
 * 
 * cpdef get_global_param_string(string param):             # <<<<<<<<<<<<<<
 *     return _get_global_param_string(param)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.get_global_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_43get_global_param_string(PyObject *__pyx_self, PyObject *__pyx_arg_param); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_43get_global_param_string(PyObject *__pyx_self, PyObject *__pyx_arg_param) {
  std::string __pyx_v_param;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_global_param_string (wrapper)", 0);
  assert(__pyx_arg_param); {
    __pyx_v_param = __pyx_convert_string_from_py_std__in_string(__pyx_arg_param); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 277, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_global_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_42get_global_param_string(__pyx_self, ((std::string)__pyx_v_param));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_42get_global_param_string(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_param) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_global_param_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_get_global_param_string(__pyx_v_param, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __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("CoolProp.CoolProp.get_global_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":280
 *     return _get_global_param_string(param)
 * 
 * cpdef is_trivial_parameter(int key):             # <<<<<<<<<<<<<<
 *     return _is_trivial_parameter(key)
 * 
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_45is_trivial_parameter(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_is_trivial_parameter(int __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("is_trivial_parameter", 0);

  /* "CoolProp/CoolProp.pyx":281
 * 
 * cpdef is_trivial_parameter(int key):
 *     return _is_trivial_parameter(key)             # <<<<<<<<<<<<<<
 * 
 * cpdef get_fluid_param_string(string fluid, string param):
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_1 = CoolProp::is_trivial_parameter(__pyx_v_key);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":280
 *     return _get_global_param_string(param)
 * 
 * cpdef is_trivial_parameter(int key):             # <<<<<<<<<<<<<<
 *     return _is_trivial_parameter(key)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.is_trivial_parameter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_45is_trivial_parameter(PyObject *__pyx_self, PyObject *__pyx_arg_key); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_45is_trivial_parameter(PyObject *__pyx_self, PyObject *__pyx_arg_key) {
  int __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_trivial_parameter (wrapper)", 0);
  assert(__pyx_arg_key); {
    __pyx_v_key = __Pyx_PyInt_As_int(__pyx_arg_key); if (unlikely((__pyx_v_key == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 280, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.is_trivial_parameter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_44is_trivial_parameter(__pyx_self, ((int)__pyx_v_key));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_44is_trivial_parameter(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("is_trivial_parameter", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_is_trivial_parameter(__pyx_v_key, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __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("CoolProp.CoolProp.is_trivial_parameter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":283
 *     return _is_trivial_parameter(key)
 * 
 * cpdef get_fluid_param_string(string fluid, string param):             # <<<<<<<<<<<<<<
 *     return _get_fluid_param_string(fluid, param)
 * 
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_47get_fluid_param_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_get_fluid_param_string(std::string __pyx_v_fluid, std::string __pyx_v_param, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_fluid_param_string", 0);

  /* "CoolProp/CoolProp.pyx":284
 * 
 * cpdef get_fluid_param_string(string fluid, string param):
 *     return _get_fluid_param_string(fluid, param)             # <<<<<<<<<<<<<<
 * 
 * cpdef apply_simple_mixing_rule(CAS1, CAS2, rule):
 */
  __Pyx_XDECREF(__pyx_r);
  try {
    __pyx_t_1 = CoolProp::get_fluid_param_string(__pyx_v_fluid, __pyx_v_param);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 284, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":283
 *     return _is_trivial_parameter(key)
 * 
 * cpdef get_fluid_param_string(string fluid, string param):             # <<<<<<<<<<<<<<
 *     return _get_fluid_param_string(fluid, param)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.get_fluid_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_47get_fluid_param_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_47get_fluid_param_string(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_fluid;
  std::string __pyx_v_param;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_fluid_param_string (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fluid,&__pyx_n_s_param,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_fluid)) != 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_param)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_fluid_param_string", 1, 2, 2, 1); __PYX_ERR(0, 283, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_fluid_param_string") < 0)) __PYX_ERR(0, 283, __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_fluid = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error)
    __pyx_v_param = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_fluid_param_string", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 283, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_fluid_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_46get_fluid_param_string(__pyx_self, __pyx_v_fluid, __pyx_v_param);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_46get_fluid_param_string(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_fluid, std::string __pyx_v_param) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_fluid_param_string", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_get_fluid_param_string(__pyx_v_fluid, __pyx_v_param, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __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("CoolProp.CoolProp.get_fluid_param_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":286
 *     return _get_fluid_param_string(fluid, param)
 * 
 * cpdef apply_simple_mixing_rule(CAS1, CAS2, rule):             # <<<<<<<<<<<<<<
 *     """
 *     Apply simple mixing rule.  Currently linear or Lorentz-Berthelot.  Python wrapper of C++ function :cpapi:`CoolProp::apply_simple_mixing_rule`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_49apply_simple_mixing_rule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_apply_simple_mixing_rule(PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_rule, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  std::string __pyx_t_3;
  __Pyx_RefNannySetupContext("apply_simple_mixing_rule", 0);

  /* "CoolProp/CoolProp.pyx":290
 *     Apply simple mixing rule.  Currently linear or Lorentz-Berthelot.  Python wrapper of C++ function :cpapi:`CoolProp::apply_simple_mixing_rule`
 *     """
 *     _apply_simple_mixing_rule(CAS1, CAS2, rule)             # <<<<<<<<<<<<<<
 * 
 * cpdef set_departure_functions(functions):
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 290, __pyx_L1_error)
  __pyx_t_2 = __pyx_convert_string_from_py_std__in_string(__pyx_v_CAS2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 290, __pyx_L1_error)
  __pyx_t_3 = __pyx_convert_string_from_py_std__in_string(__pyx_v_rule); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 290, __pyx_L1_error)
  try {
    CoolProp::apply_simple_mixing_rule(__pyx_t_1, __pyx_t_2, __pyx_t_3);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 290, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":286
 *     return _get_fluid_param_string(fluid, param)
 * 
 * cpdef apply_simple_mixing_rule(CAS1, CAS2, rule):             # <<<<<<<<<<<<<<
 *     """
 *     Apply simple mixing rule.  Currently linear or Lorentz-Berthelot.  Python wrapper of C++ function :cpapi:`CoolProp::apply_simple_mixing_rule`
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_49apply_simple_mixing_rule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_48apply_simple_mixing_rule[] = "\n    Apply simple mixing rule.  Currently linear or Lorentz-Berthelot.  Python wrapper of C++ function :cpapi:`CoolProp::apply_simple_mixing_rule`\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_49apply_simple_mixing_rule(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_CAS1 = 0;
  PyObject *__pyx_v_CAS2 = 0;
  PyObject *__pyx_v_rule = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("apply_simple_mixing_rule (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_CAS1,&__pyx_n_s_CAS2,&__pyx_n_s_rule,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_CAS1)) != 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_CAS2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("apply_simple_mixing_rule", 1, 3, 3, 1); __PYX_ERR(0, 286, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rule)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("apply_simple_mixing_rule", 1, 3, 3, 2); __PYX_ERR(0, 286, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "apply_simple_mixing_rule") < 0)) __PYX_ERR(0, 286, __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_CAS1 = values[0];
    __pyx_v_CAS2 = values[1];
    __pyx_v_rule = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("apply_simple_mixing_rule", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 286, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.apply_simple_mixing_rule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_48apply_simple_mixing_rule(__pyx_self, __pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_rule);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_48apply_simple_mixing_rule(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_CAS1, PyObject *__pyx_v_CAS2, PyObject *__pyx_v_rule) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("apply_simple_mixing_rule", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_apply_simple_mixing_rule(__pyx_v_CAS1, __pyx_v_CAS2, __pyx_v_rule, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __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("CoolProp.CoolProp.apply_simple_mixing_rule", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":292
 *     _apply_simple_mixing_rule(CAS1, CAS2, rule)
 * 
 * cpdef set_departure_functions(functions):             # <<<<<<<<<<<<<<
 *     """
 *     Specify the departure terms as JSON. Python wrapper of C++ function :cpapi:`CoolProp::set_departure_functions`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_51set_departure_functions(PyObject *__pyx_self, PyObject *__pyx_v_functions); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_departure_functions(PyObject *__pyx_v_functions, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  __Pyx_RefNannySetupContext("set_departure_functions", 0);

  /* "CoolProp/CoolProp.pyx":296
 *     Specify the departure terms as JSON. Python wrapper of C++ function :cpapi:`CoolProp::set_departure_functions`
 *     """
 *     _set_departure_functions(functions)             # <<<<<<<<<<<<<<
 * 
 * cpdef double saturation_ancillary(string name, string output, int Q, string input, double value):
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v_functions); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 296, __pyx_L1_error)
  try {
    CoolProp::set_departure_functions(__pyx_t_1);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 296, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":292
 *     _apply_simple_mixing_rule(CAS1, CAS2, rule)
 * 
 * cpdef set_departure_functions(functions):             # <<<<<<<<<<<<<<
 *     """
 *     Specify the departure terms as JSON. Python wrapper of C++ function :cpapi:`CoolProp::set_departure_functions`
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_51set_departure_functions(PyObject *__pyx_self, PyObject *__pyx_v_functions); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_50set_departure_functions[] = "\n    Specify the departure terms as JSON. Python wrapper of C++ function :cpapi:`CoolProp::set_departure_functions`\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_51set_departure_functions(PyObject *__pyx_self, PyObject *__pyx_v_functions) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_departure_functions (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_50set_departure_functions(__pyx_self, ((PyObject *)__pyx_v_functions));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_50set_departure_functions(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_functions) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_departure_functions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_set_departure_functions(__pyx_v_functions, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __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("CoolProp.CoolProp.set_departure_functions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":298
 *     _set_departure_functions(functions)
 * 
 * cpdef double saturation_ancillary(string name, string output, int Q, string input, double value):             # <<<<<<<<<<<<<<
 *     """
 *     Return a value from the saturation ancillary equations; python wrapper of :cpapi:`CoolProp::saturation_ancillary`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_53saturation_ancillary(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_saturation_ancillary(std::string __pyx_v_name, std::string __pyx_v_output, int __pyx_v_Q, std::string __pyx_v_input, double __pyx_v_value, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("saturation_ancillary", 0);

  /* "CoolProp/CoolProp.pyx":302
 *     Return a value from the saturation ancillary equations; python wrapper of :cpapi:`CoolProp::saturation_ancillary`
 *     """
 *     return _saturation_ancillary(name, output, Q, input, value)             # <<<<<<<<<<<<<<
 * 
 * cpdef __Props_err1(fcn, in1,in2):
 */
  try {
    __pyx_t_1 = CoolProp::saturation_ancillary(__pyx_v_name, __pyx_v_output, __pyx_v_Q, __pyx_v_input, __pyx_v_value);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 302, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":298
 *     _set_departure_functions(functions)
 * 
 * cpdef double saturation_ancillary(string name, string output, int Q, string input, double value):             # <<<<<<<<<<<<<<
 *     """
 *     Return a value from the saturation ancillary equations; python wrapper of :cpapi:`CoolProp::saturation_ancillary`
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.saturation_ancillary", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_53saturation_ancillary(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_52saturation_ancillary[] = "\n    Return a value from the saturation ancillary equations; python wrapper of :cpapi:`CoolProp::saturation_ancillary`\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_53saturation_ancillary(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_name;
  std::string __pyx_v_output;
  int __pyx_v_Q;
  std::string __pyx_v_input;
  double __pyx_v_value;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("saturation_ancillary (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_output,&__pyx_n_s_Q,&__pyx_n_s_input,&__pyx_n_s_value,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_name)) != 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_output)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 5, 5, 1); __PYX_ERR(0, 298, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Q)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 5, 5, 2); __PYX_ERR(0, 298, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 5, 5, 3); __PYX_ERR(0, 298, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 5, 5, 4); __PYX_ERR(0, 298, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "saturation_ancillary") < 0)) __PYX_ERR(0, 298, __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_name = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L3_error)
    __pyx_v_output = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L3_error)
    __pyx_v_Q = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_Q == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L3_error)
    __pyx_v_input = __pyx_convert_string_from_py_std__in_string(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L3_error)
    __pyx_v_value = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_value == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("saturation_ancillary", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 298, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.saturation_ancillary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_52saturation_ancillary(__pyx_self, __pyx_v_name, __pyx_v_output, __pyx_v_Q, __pyx_v_input, __pyx_v_value);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_52saturation_ancillary(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_name, std::string __pyx_v_output, int __pyx_v_Q, std::string __pyx_v_input, double __pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("saturation_ancillary", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_8CoolProp_8CoolProp_saturation_ancillary(__pyx_v_name, __pyx_v_output, __pyx_v_Q, __pyx_v_input, __pyx_v_value, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 298, __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("CoolProp.CoolProp.saturation_ancillary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":304
 *     return _saturation_ancillary(name, output, Q, input, value)
 * 
 * cpdef __Props_err1(fcn, in1,in2):             # <<<<<<<<<<<<<<
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_55__Props_err1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___Props_err1(PyObject *__pyx_v_fcn, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_v_errstr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("__Props_err1", 0);

  /* "CoolProp/CoolProp.pyx":305
 * 
 * cpdef __Props_err1(fcn, in1,in2):
 *     errstr = _get_global_param_string('errstring')             # <<<<<<<<<<<<<<
 *     if not len(errstr) == 0:
 *         raise ValueError("{err:s} :: inputs were :\"{in1:s}\",\"{in2:s}\"".format(err= errstr,in1=in1,in2=in2))
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 305, __pyx_L1_error)
  try {
    __pyx_t_2 = CoolProp::get_global_param_string(__pyx_t_1);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 305, __pyx_L1_error)
  }
  __pyx_v_errstr = __pyx_t_2;

  /* "CoolProp/CoolProp.pyx":306
 * cpdef __Props_err1(fcn, in1,in2):
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:             # <<<<<<<<<<<<<<
 *         raise ValueError("{err:s} :: inputs were :\"{in1:s}\",\"{in2:s}\"".format(err= errstr,in1=in1,in2=in2))
 *     else:
 */
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_errstr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = ((!((__pyx_t_4 == 0) != 0)) != 0);
  if (unlikely(__pyx_t_5)) {

    /* "CoolProp/CoolProp.pyx":307
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:
 *         raise ValueError("{err:s} :: inputs were :\"{in1:s}\",\"{in2:s}\"".format(err= errstr,in1=in1,in2=in2))             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError("{fcn:s} failed ungracefully with inputs:\"{in1:s}\",\"{in2:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn=fcn, in1=in1,in2=in2))
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_err_s_inputs_were_in1_s_in2_s, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 307, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_errstr); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 307, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_err, __pyx_t_7) < 0) __PYX_ERR(0, 307, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_in1, __pyx_v_in1) < 0) __PYX_ERR(0, 307, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_in2, __pyx_v_in2) < 0) __PYX_ERR(0, 307, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 307, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 307, __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, 307, __pyx_L1_error)

    /* "CoolProp/CoolProp.pyx":306
 * cpdef __Props_err1(fcn, in1,in2):
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:             # <<<<<<<<<<<<<<
 *         raise ValueError("{err:s} :: inputs were :\"{in1:s}\",\"{in2:s}\"".format(err= errstr,in1=in1,in2=in2))
 *     else:
 */
  }

  /* "CoolProp/CoolProp.pyx":309
 *         raise ValueError("{err:s} :: inputs were :\"{in1:s}\",\"{in2:s}\"".format(err= errstr,in1=in1,in2=in2))
 *     else:
 *         raise ValueError("{fcn:s} failed ungracefully with inputs:\"{in1:s}\",\"{in2:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn=fcn, in1=in1,in2=in2))             # <<<<<<<<<<<<<<
 * 
 * cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6):
 */
  /*else*/ {
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_fcn_s_failed_ungracefully_with, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fcn, __pyx_v_fcn) < 0) __PYX_ERR(0, 309, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in1, __pyx_v_in1) < 0) __PYX_ERR(0, 309, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in2, __pyx_v_in2) < 0) __PYX_ERR(0, 309, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __PYX_ERR(0, 309, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":304
 *     return _saturation_ancillary(name, output, Q, input, value)
 * 
 * cpdef __Props_err1(fcn, in1,in2):             # <<<<<<<<<<<<<<
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("CoolProp.CoolProp.__Props_err1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_55__Props_err1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_55__Props_err1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fcn = 0;
  PyObject *__pyx_v_in1 = 0;
  PyObject *__pyx_v_in2 = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Props_err1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fcn,&__pyx_n_s_in1,&__pyx_n_s_in2,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_fcn)) != 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_in1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err1", 1, 3, 3, 1); __PYX_ERR(0, 304, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err1", 1, 3, 3, 2); __PYX_ERR(0, 304, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__Props_err1") < 0)) __PYX_ERR(0, 304, __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_fcn = values[0];
    __pyx_v_in1 = values[1];
    __pyx_v_in2 = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__Props_err1", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 304, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.__Props_err1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_54__Props_err1(__pyx_self, __pyx_v_fcn, __pyx_v_in1, __pyx_v_in2);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_54__Props_err1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fcn, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__Props_err1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___Props_err1(__pyx_v_fcn, __pyx_v_in1, __pyx_v_in2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __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("CoolProp.CoolProp.__Props_err1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":311
 *         raise ValueError("{fcn:s} failed ungracefully with inputs:\"{in1:s}\",\"{in2:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn=fcn, in1=in1,in2=in2))
 * 
 * cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6):             # <<<<<<<<<<<<<<
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_57__Props_err2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp___Props_err2(PyObject *__pyx_v_fcn, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, PyObject *__pyx_v_in6, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_v_errstr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("__Props_err2", 0);

  /* "CoolProp/CoolProp.pyx":312
 * 
 * cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6):
 *     errstr = _get_global_param_string('errstring')             # <<<<<<<<<<<<<<
 *     if not len(errstr) == 0:
 *         raise ValueError("{err:s}".format(err=errstr))
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 312, __pyx_L1_error)
  try {
    __pyx_t_2 = CoolProp::get_global_param_string(__pyx_t_1);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 312, __pyx_L1_error)
  }
  __pyx_v_errstr = __pyx_t_2;

  /* "CoolProp/CoolProp.pyx":313
 * cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6):
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:             # <<<<<<<<<<<<<<
 *         raise ValueError("{err:s}".format(err=errstr))
 *     else:
 */
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_errstr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = ((!((__pyx_t_4 == 0) != 0)) != 0);
  if (unlikely(__pyx_t_5)) {

    /* "CoolProp/CoolProp.pyx":314
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:
 *         raise ValueError("{err:s}".format(err=errstr))             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError("{fcn:s} failed ungracefully :: inputs were:\"{in1:s}\",\"{in2:s}\",{in3:0.16e},\"{in4:s}\",{in5:0.16e},\"{in6:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn = fcn, in1=in1,in2=in2,in3=in3,in4=in4,in5=in5,in6=in6))
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_err_s, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_errstr); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_err, __pyx_t_7) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __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, 314, __pyx_L1_error)

    /* "CoolProp/CoolProp.pyx":313
 * cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6):
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:             # <<<<<<<<<<<<<<
 *         raise ValueError("{err:s}".format(err=errstr))
 *     else:
 */
  }

  /* "CoolProp/CoolProp.pyx":316
 *         raise ValueError("{err:s}".format(err=errstr))
 *     else:
 *         raise ValueError("{fcn:s} failed ungracefully :: inputs were:\"{in1:s}\",\"{in2:s}\",{in3:0.16e},\"{in4:s}\",{in5:0.16e},\"{in6:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn = fcn, in1=in1,in2=in2,in3=in3,in4=in4,in5=in5,in6=in6))             # <<<<<<<<<<<<<<
 * 
 * cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None):
 */
  /*else*/ {
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_fcn_s_failed_ungracefully_input, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_fcn, __pyx_v_fcn) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in1, __pyx_v_in1) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in2, __pyx_v_in2) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in3, __pyx_v_in3) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in4, __pyx_v_in4) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in5, __pyx_v_in5) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_in6, __pyx_v_in6) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __PYX_ERR(0, 316, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":311
 *         raise ValueError("{fcn:s} failed ungracefully with inputs:\"{in1:s}\",\"{in2:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn=fcn, in1=in1,in2=in2))
 * 
 * cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6):             # <<<<<<<<<<<<<<
 *     errstr = _get_global_param_string('errstring')
 *     if not len(errstr) == 0:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("CoolProp.CoolProp.__Props_err2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_57__Props_err2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_57__Props_err2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fcn = 0;
  PyObject *__pyx_v_in1 = 0;
  PyObject *__pyx_v_in2 = 0;
  PyObject *__pyx_v_in3 = 0;
  PyObject *__pyx_v_in4 = 0;
  PyObject *__pyx_v_in5 = 0;
  PyObject *__pyx_v_in6 = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Props_err2 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fcn,&__pyx_n_s_in1,&__pyx_n_s_in2,&__pyx_n_s_in3,&__pyx_n_s_in4,&__pyx_n_s_in5,&__pyx_n_s_in6,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_fcn)) != 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_in1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err2", 1, 7, 7, 1); __PYX_ERR(0, 311, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err2", 1, 7, 7, 2); __PYX_ERR(0, 311, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err2", 1, 7, 7, 3); __PYX_ERR(0, 311, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err2", 1, 7, 7, 4); __PYX_ERR(0, 311, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in5)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err2", 1, 7, 7, 5); __PYX_ERR(0, 311, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in6)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__Props_err2", 1, 7, 7, 6); __PYX_ERR(0, 311, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__Props_err2") < 0)) __PYX_ERR(0, 311, __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_fcn = values[0];
    __pyx_v_in1 = values[1];
    __pyx_v_in2 = values[2];
    __pyx_v_in3 = values[3];
    __pyx_v_in4 = values[4];
    __pyx_v_in5 = values[5];
    __pyx_v_in6 = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__Props_err2", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 311, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.__Props_err2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_56__Props_err2(__pyx_self, __pyx_v_fcn, __pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5, __pyx_v_in6);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_56__Props_err2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fcn, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, PyObject *__pyx_v_in6) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__Props_err2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___Props_err2(__pyx_v_fcn, __pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5, __pyx_v_in6, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __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("CoolProp.CoolProp.__Props_err2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":318
 *         raise ValueError("{fcn:s} failed ungracefully :: inputs were:\"{in1:s}\",\"{in2:s}\",{in3:0.16e},\"{in4:s}\",{in5:0.16e},\"{in6:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn = fcn, in1=in1,in2=in2,in3=in3,in4=in4,in5=in5,in6=in6))
 * 
 * cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None):             # <<<<<<<<<<<<<<
 *     """
 *     This function is deprecated, use PropsSI instead
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_59Props(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_Props(PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_Props *__pyx_optional_args) {
  PyObject *__pyx_v_in3 = ((PyObject *)Py_None);
  PyObject *__pyx_v_in4 = ((PyObject *)Py_None);
  PyObject *__pyx_v_in5 = ((PyObject *)Py_None);
  PyObject *__pyx_v_in6 = ((PyObject *)Py_None);
  PyObject *__pyx_v_warnings = NULL;
  PyObject *__pyx_v_dep_warning = NULL;
  char *__pyx_v_c1;
  char *__pyx_v_c2;
  double __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __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;
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  char *__pyx_t_8;
  char const *__pyx_t_9;
  double __pyx_t_10;
  double __pyx_t_11;
  char const *__pyx_t_12;
  __Pyx_RefNannySetupContext("Props", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_in3 = __pyx_optional_args->in3;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_in4 = __pyx_optional_args->in4;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_in5 = __pyx_optional_args->in5;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_in6 = __pyx_optional_args->in6;
          }
        }
      }
    }
  }

  /* "CoolProp/CoolProp.pyx":322
 *     This function is deprecated, use PropsSI instead
 *     """
 *     import warnings             # <<<<<<<<<<<<<<
 *     # Issue deprecation warning....
 *     dep_warning = "Props() function is deprecated; Use the PropsSI() function"
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_warnings, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_warnings = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":324
 *     import warnings
 *     # Issue deprecation warning....
 *     dep_warning = "Props() function is deprecated; Use the PropsSI() function"             # <<<<<<<<<<<<<<
 *     warnings.warn(dep_warning, DeprecationWarning)
 *     # ...but process Props() function anyway...
 */
  __Pyx_INCREF(__pyx_kp_s_Props_function_is_deprecated_Use);
  __pyx_v_dep_warning = __pyx_kp_s_Props_function_is_deprecated_Use;

  /* "CoolProp/CoolProp.pyx":325
 *     # Issue deprecation warning....
 *     dep_warning = "Props() function is deprecated; Use the PropsSI() function"
 *     warnings.warn(dep_warning, DeprecationWarning)             # <<<<<<<<<<<<<<
 *     # ...but process Props() function anyway...
 *     if len(in2) != 1:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __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_dep_warning, __pyx_builtin_DeprecationWarning};
    __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, 325, __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_dep_warning, __pyx_builtin_DeprecationWarning};
    __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, 325, __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, 325, __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_dep_warning);
    __Pyx_GIVEREF(__pyx_v_dep_warning);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_dep_warning);
    __Pyx_INCREF(__pyx_builtin_DeprecationWarning);
    __Pyx_GIVEREF(__pyx_builtin_DeprecationWarning);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_builtin_DeprecationWarning);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 325, __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;

  /* "CoolProp/CoolProp.pyx":327
 *     warnings.warn(dep_warning, DeprecationWarning)
 *     # ...but process Props() function anyway...
 *     if len(in2) != 1:             # <<<<<<<<<<<<<<
 *         raise ValueError('Length of input name #1 must be 1 character')
 *     if len(in4) != 1:
 */
  __pyx_t_6 = PyObject_Length(__pyx_v_in2); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_t_7 = ((__pyx_t_6 != 1) != 0);
  if (unlikely(__pyx_t_7)) {

    /* "CoolProp/CoolProp.pyx":328
 *     # ...but process Props() function anyway...
 *     if len(in2) != 1:
 *         raise ValueError('Length of input name #1 must be 1 character')             # <<<<<<<<<<<<<<
 *     if len(in4) != 1:
 *         raise ValueError('Length of input name #2 must be 1 character')
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 328, __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, 328, __pyx_L1_error)

    /* "CoolProp/CoolProp.pyx":327
 *     warnings.warn(dep_warning, DeprecationWarning)
 *     # ...but process Props() function anyway...
 *     if len(in2) != 1:             # <<<<<<<<<<<<<<
 *         raise ValueError('Length of input name #1 must be 1 character')
 *     if len(in4) != 1:
 */
  }

  /* "CoolProp/CoolProp.pyx":329
 *     if len(in2) != 1:
 *         raise ValueError('Length of input name #1 must be 1 character')
 *     if len(in4) != 1:             # <<<<<<<<<<<<<<
 *         raise ValueError('Length of input name #2 must be 1 character')
 *     cdef char* c1 = (<bytes>in2)
 */
  __pyx_t_6 = PyObject_Length(__pyx_v_in4); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 329, __pyx_L1_error)
  __pyx_t_7 = ((__pyx_t_6 != 1) != 0);
  if (unlikely(__pyx_t_7)) {

    /* "CoolProp/CoolProp.pyx":330
 *         raise ValueError('Length of input name #1 must be 1 character')
 *     if len(in4) != 1:
 *         raise ValueError('Length of input name #2 must be 1 character')             # <<<<<<<<<<<<<<
 *     cdef char* c1 = (<bytes>in2)
 *     cdef char* c2 = (<bytes>in4)
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 330, __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, 330, __pyx_L1_error)

    /* "CoolProp/CoolProp.pyx":329
 *     if len(in2) != 1:
 *         raise ValueError('Length of input name #1 must be 1 character')
 *     if len(in4) != 1:             # <<<<<<<<<<<<<<
 *         raise ValueError('Length of input name #2 must be 1 character')
 *     cdef char* c1 = (<bytes>in2)
 */
  }

  /* "CoolProp/CoolProp.pyx":331
 *     if len(in4) != 1:
 *         raise ValueError('Length of input name #2 must be 1 character')
 *     cdef char* c1 = (<bytes>in2)             # <<<<<<<<<<<<<<
 *     cdef char* c2 = (<bytes>in4)
 *     val = _Props(in1, c1[0], in3, c2[0], in5, in6)
 */
  if (unlikely(__pyx_v_in2 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(0, 331, __pyx_L1_error)
  }
  __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_in2); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L1_error)
  __pyx_v_c1 = __pyx_t_8;

  /* "CoolProp/CoolProp.pyx":332
 *         raise ValueError('Length of input name #2 must be 1 character')
 *     cdef char* c1 = (<bytes>in2)
 *     cdef char* c2 = (<bytes>in4)             # <<<<<<<<<<<<<<
 *     val = _Props(in1, c1[0], in3, c2[0], in5, in6)
 *     if not _ValidNumber(val):
 */
  if (unlikely(__pyx_v_in4 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    __PYX_ERR(0, 332, __pyx_L1_error)
  }
  __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_in4); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L1_error)
  __pyx_v_c2 = __pyx_t_8;

  /* "CoolProp/CoolProp.pyx":333
 *     cdef char* c1 = (<bytes>in2)
 *     cdef char* c2 = (<bytes>in4)
 *     val = _Props(in1, c1[0], in3, c2[0], in5, in6)             # <<<<<<<<<<<<<<
 *     if not _ValidNumber(val):
 *         __Props_err2("Props", in1, in2, in3, in4, in5, in6)
 */
  __pyx_t_9 = __Pyx_PyObject_AsString(__pyx_v_in1); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(0, 333, __pyx_L1_error)
  __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_v_in3); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 333, __pyx_L1_error)
  __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_v_in5); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 333, __pyx_L1_error)
  __pyx_t_12 = __Pyx_PyObject_AsString(__pyx_v_in6); if (unlikely((!__pyx_t_12) && PyErr_Occurred())) __PYX_ERR(0, 333, __pyx_L1_error)
  __pyx_v_val = Props(__pyx_t_9, (__pyx_v_c1[0]), __pyx_t_10, (__pyx_v_c2[0]), __pyx_t_11, __pyx_t_12);

  /* "CoolProp/CoolProp.pyx":334
 *     cdef char* c2 = (<bytes>in4)
 *     val = _Props(in1, c1[0], in3, c2[0], in5, in6)
 *     if not _ValidNumber(val):             # <<<<<<<<<<<<<<
 *         __Props_err2("Props", in1, in2, in3, in4, in5, in6)
 *     else:
 */
  __pyx_t_7 = ((!(ValidNumber(__pyx_v_val) != 0)) != 0);
  if (__pyx_t_7) {

    /* "CoolProp/CoolProp.pyx":335
 *     val = _Props(in1, c1[0], in3, c2[0], in5, in6)
 *     if not _ValidNumber(val):
 *         __Props_err2("Props", in1, in2, in3, in4, in5, in6)             # <<<<<<<<<<<<<<
 *     else:
 *         return val
 */
    __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___Props_err2(__pyx_n_s_Props, __pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5, __pyx_v_in6, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":334
 *     cdef char* c2 = (<bytes>in4)
 *     val = _Props(in1, c1[0], in3, c2[0], in5, in6)
 *     if not _ValidNumber(val):             # <<<<<<<<<<<<<<
 *         __Props_err2("Props", in1, in2, in3, in4, in5, in6)
 *     else:
 */
    goto __pyx_L5;
  }

  /* "CoolProp/CoolProp.pyx":337
 *         __Props_err2("Props", in1, in2, in3, in4, in5, in6)
 *     else:
 *         return val             # <<<<<<<<<<<<<<
 * 
 * cpdef PhaseSI(in1, in2, in3, in4, in5):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }
  __pyx_L5:;

  /* "CoolProp/CoolProp.pyx":318
 *         raise ValueError("{fcn:s} failed ungracefully :: inputs were:\"{in1:s}\",\"{in2:s}\",{in3:0.16e},\"{in4:s}\",{in5:0.16e},\"{in6:s}\"; please file a ticket at https://github.com/CoolProp/CoolProp/issues".format(fcn = fcn, in1=in1,in2=in2,in3=in3,in4=in4,in5=in5,in6=in6))
 * 
 * cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None):             # <<<<<<<<<<<<<<
 *     """
 *     This function is deprecated, use PropsSI instead
 */

  /* 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_5);
  __Pyx_AddTraceback("CoolProp.CoolProp.Props", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_warnings);
  __Pyx_XDECREF(__pyx_v_dep_warning);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_59Props(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_58Props[] = "\n    This function is deprecated, use PropsSI instead\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_59Props(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_in1 = 0;
  PyObject *__pyx_v_in2 = 0;
  PyObject *__pyx_v_in3 = 0;
  PyObject *__pyx_v_in4 = 0;
  PyObject *__pyx_v_in5 = 0;
  PyObject *__pyx_v_in6 = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Props (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_in1,&__pyx_n_s_in2,&__pyx_n_s_in3,&__pyx_n_s_in4,&__pyx_n_s_in5,&__pyx_n_s_in6,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    values[2] = ((PyObject *)Py_None);
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)Py_None);
    values[5] = ((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  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_in1)) != 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_in2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("Props", 0, 2, 6, 1); __PYX_ERR(0, 318, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in3);
          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_in4);
          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_in5);
          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_in6);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Props") < 0)) __PYX_ERR(0, 318, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_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);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_in1 = values[0];
    __pyx_v_in2 = values[1];
    __pyx_v_in3 = values[2];
    __pyx_v_in4 = values[3];
    __pyx_v_in5 = values[4];
    __pyx_v_in6 = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("Props", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 318, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.Props", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_58Props(__pyx_self, __pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5, __pyx_v_in6);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_58Props(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, PyObject *__pyx_v_in6) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8CoolProp_8CoolProp_Props __pyx_t_2;
  __Pyx_RefNannySetupContext("Props", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 4;
  __pyx_t_2.in3 = __pyx_v_in3;
  __pyx_t_2.in4 = __pyx_v_in4;
  __pyx_t_2.in5 = __pyx_v_in5;
  __pyx_t_2.in6 = __pyx_v_in6;
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_Props(__pyx_v_in1, __pyx_v_in2, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __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("CoolProp.CoolProp.Props", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":339
 *         return val
 * 
 * cpdef PhaseSI(in1, in2, in3, in4, in5):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::PhaseSI`
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_61PhaseSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_PhaseSI(PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  double __pyx_t_2;
  std::string __pyx_t_3;
  double __pyx_t_4;
  std::string __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("PhaseSI", 0);

  /* "CoolProp/CoolProp.pyx":345
 *     Does not support vectorization of the inputs like PropsSI
 *     """
 *     return _PhaseSI(in1, in2, in3, in4, in5)             # <<<<<<<<<<<<<<
 * 
 * cpdef PropsSI(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None, in7 = None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error)
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_in2); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error)
  __pyx_t_3 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error)
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_in4); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error)
  __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error)
  __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(CoolProp::PhaseSI(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":339
 *         return val
 * 
 * cpdef PhaseSI(in1, in2, in3, in4, in5):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::PhaseSI`
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("CoolProp.CoolProp.PhaseSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_61PhaseSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_60PhaseSI[] = "\n    A Python wrapper of C++ function :cpapi:`CoolProp::PhaseSI`\n\n    Does not support vectorization of the inputs like PropsSI\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_61PhaseSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_in1 = 0;
  PyObject *__pyx_v_in2 = 0;
  PyObject *__pyx_v_in3 = 0;
  PyObject *__pyx_v_in4 = 0;
  PyObject *__pyx_v_in5 = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("PhaseSI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_in1,&__pyx_n_s_in2,&__pyx_n_s_in3,&__pyx_n_s_in4,&__pyx_n_s_in5,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_in1)) != 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_in2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PhaseSI", 1, 5, 5, 1); __PYX_ERR(0, 339, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PhaseSI", 1, 5, 5, 2); __PYX_ERR(0, 339, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PhaseSI", 1, 5, 5, 3); __PYX_ERR(0, 339, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in5)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PhaseSI", 1, 5, 5, 4); __PYX_ERR(0, 339, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "PhaseSI") < 0)) __PYX_ERR(0, 339, __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_in1 = values[0];
    __pyx_v_in2 = values[1];
    __pyx_v_in3 = values[2];
    __pyx_v_in4 = values[3];
    __pyx_v_in5 = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("PhaseSI", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 339, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PhaseSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_60PhaseSI(__pyx_self, __pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_60PhaseSI(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("PhaseSI", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_PhaseSI(__pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 339, __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("CoolProp.CoolProp.PhaseSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":347
 *     return _PhaseSI(in1, in2, in3, in4, in5)
 * 
 * cpdef PropsSI(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None, in7 = None):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::PropsSI` .
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_63PropsSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_PropsSI(PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_PropsSI *__pyx_optional_args) {
  PyObject *__pyx_v_in3 = ((PyObject *)Py_None);
  PyObject *__pyx_v_in4 = ((PyObject *)Py_None);
  PyObject *__pyx_v_in5 = ((PyObject *)Py_None);
  PyObject *__pyx_v_in6 = ((PyObject *)Py_None);
  PyObject *__pyx_v_in7 = ((PyObject *)Py_None);
  std::vector<std::string>  __pyx_v_vin1;
  std::vector<double>  __pyx_v_fractions;
  std::vector<double>  __pyx_v_vval1;
  std::vector<double>  __pyx_v_vval2;
  double __pyx_v_val;
  std::string __pyx_v_backend;
  std::string __pyx_v_fluid;
  std::string __pyx_v_delimitedfluids;
  bool __pyx_v_is_iterable1;
  bool __pyx_v_is_iterable3;
  bool __pyx_v_is_iterable5;
  PyObject *__pyx_v_templist = NULL;
  PyObject *__pyx_v_fluids = NULL;
  std::vector<std::vector<double> >  __pyx_v_outmat;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  std::string __pyx_t_4;
  std::string __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  std::vector<std::string>  __pyx_t_10;
  Py_ssize_t __pyx_t_11;
  Py_ssize_t __pyx_t_12;
  std::vector<double>  __pyx_t_13;
  double __pyx_t_14;
  std::string __pyx_t_15;
  double __pyx_t_16;
  std::string __pyx_t_17;
  __Pyx_RefNannySetupContext("PropsSI", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_in3 = __pyx_optional_args->in3;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_in4 = __pyx_optional_args->in4;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_in5 = __pyx_optional_args->in5;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_in6 = __pyx_optional_args->in6;
            if (__pyx_optional_args->__pyx_n > 4) {
              __pyx_v_in7 = __pyx_optional_args->in7;
            }
          }
        }
      }
    }
  }

  /* "CoolProp/CoolProp.pyx":358
 * 
 *     # Two parameter inputs
 *     if in3 is None and in4 is None and in5 is None and in6 is None and in7 is None:             # <<<<<<<<<<<<<<
 *         val = _Props1SI(in1, in2)
 *         if not _ValidNumber(val):
 */
  __pyx_t_2 = (__pyx_v_in3 == Py_None);
  __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 = (__pyx_v_in4 == Py_None);
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_in5 == Py_None);
  __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 = (__pyx_v_in6 == Py_None);
  __pyx_t_2 = (__pyx_t_3 != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_in7 == Py_None);
  __pyx_t_3 = (__pyx_t_2 != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "CoolProp/CoolProp.pyx":359
 *     # Two parameter inputs
 *     if in3 is None and in4 is None and in5 is None and in6 is None and in7 is None:
 *         val = _Props1SI(in1, in2)             # <<<<<<<<<<<<<<
 *         if not _ValidNumber(val):
 *             __Props_err1("PropsSI", in1, in2)
 */
    __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L1_error)
    __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L1_error)
    __pyx_v_val = CoolProp::Props1SI(__pyx_t_4, __pyx_t_5);

    /* "CoolProp/CoolProp.pyx":360
 *     if in3 is None and in4 is None and in5 is None and in6 is None and in7 is None:
 *         val = _Props1SI(in1, in2)
 *         if not _ValidNumber(val):             # <<<<<<<<<<<<<<
 *             __Props_err1("PropsSI", in1, in2)
 *         else:
 */
    __pyx_t_1 = ((!(ValidNumber(__pyx_v_val) != 0)) != 0);
    if (__pyx_t_1) {

      /* "CoolProp/CoolProp.pyx":361
 *         val = _Props1SI(in1, in2)
 *         if not _ValidNumber(val):
 *             __Props_err1("PropsSI", in1, in2)             # <<<<<<<<<<<<<<
 *         else:
 *             return val
 */
      __pyx_t_6 = __pyx_f_8CoolProp_8CoolProp___Props_err1(__pyx_n_s_PropsSI, __pyx_v_in1, __pyx_v_in2, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 361, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "CoolProp/CoolProp.pyx":360
 *     if in3 is None and in4 is None and in5 is None and in6 is None and in7 is None:
 *         val = _Props1SI(in1, in2)
 *         if not _ValidNumber(val):             # <<<<<<<<<<<<<<
 *             __Props_err1("PropsSI", in1, in2)
 *         else:
 */
      goto __pyx_L9;
    }

    /* "CoolProp/CoolProp.pyx":363
 *             __Props_err1("PropsSI", in1, in2)
 *         else:
 *             return val             # <<<<<<<<<<<<<<
 *     # Six parameter inputs
 *     elif in7 is None:
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_6 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 363, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L0;
    }
    __pyx_L9:;

    /* "CoolProp/CoolProp.pyx":358
 * 
 *     # Two parameter inputs
 *     if in3 is None and in4 is None and in5 is None and in6 is None and in7 is None:             # <<<<<<<<<<<<<<
 *         val = _Props1SI(in1, in2)
 *         if not _ValidNumber(val):
 */
    goto __pyx_L3;
  }

  /* "CoolProp/CoolProp.pyx":365
 *             return val
 *     # Six parameter inputs
 *     elif in7 is None:             # <<<<<<<<<<<<<<
 *         is_iterable1 = iterable(in1)
 *         is_iterable3 = iterable(in3)
 */
  __pyx_t_1 = (__pyx_v_in7 == Py_None);
  __pyx_t_3 = (__pyx_t_1 != 0);
  if (likely(__pyx_t_3)) {

    /* "CoolProp/CoolProp.pyx":366
 *     # Six parameter inputs
 *     elif in7 is None:
 *         is_iterable1 = iterable(in1)             # <<<<<<<<<<<<<<
 *         is_iterable3 = iterable(in3)
 *         is_iterable5 = iterable(in5)
 */
    __pyx_v_is_iterable1 = __pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_in1);

    /* "CoolProp/CoolProp.pyx":367
 *     elif in7 is None:
 *         is_iterable1 = iterable(in1)
 *         is_iterable3 = iterable(in3)             # <<<<<<<<<<<<<<
 *         is_iterable5 = iterable(in5)
 * 
 */
    __pyx_v_is_iterable3 = __pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_in3);

    /* "CoolProp/CoolProp.pyx":368
 *         is_iterable1 = iterable(in1)
 *         is_iterable3 = iterable(in3)
 *         is_iterable5 = iterable(in5)             # <<<<<<<<<<<<<<
 * 
 *         if _numpy_supported and is_iterable3 and isinstance(in3, np.ndarray) and (np.prod(in3.shape) != max(in3.shape)):
 */
    __pyx_v_is_iterable5 = __pyx_f_8CoolProp_8CoolProp_iterable(__pyx_v_in5);

    /* "CoolProp/CoolProp.pyx":370
 *         is_iterable5 = iterable(in5)
 * 
 *         if _numpy_supported and is_iterable3 and isinstance(in3, np.ndarray) and (np.prod(in3.shape) != max(in3.shape)):             # <<<<<<<<<<<<<<
 *             raise ValueError("Input 3 is not one-dimensional")
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_1) {
    } else {
      __pyx_t_3 = __pyx_t_1;
      goto __pyx_L11_bool_binop_done;
    }
    __pyx_t_1 = (__pyx_v_is_iterable3 != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_3 = __pyx_t_1;
      goto __pyx_L11_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = PyObject_IsInstance(__pyx_v_in3, __pyx_t_7); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_2 = (__pyx_t_1 != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L11_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_prod); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __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_in3, __pyx_n_s_shape); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(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_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __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, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_in3, __pyx_n_s_shape); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_3 = __pyx_t_2;
    __pyx_L11_bool_binop_done:;
    if (unlikely(__pyx_t_3)) {

      /* "CoolProp/CoolProp.pyx":371
 * 
 *         if _numpy_supported and is_iterable3 and isinstance(in3, np.ndarray) and (np.prod(in3.shape) != max(in3.shape)):
 *             raise ValueError("Input 3 is not one-dimensional")             # <<<<<<<<<<<<<<
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):
 *             raise ValueError("Input 5 is not one-dimensional")
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_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(0, 371, __pyx_L1_error)

      /* "CoolProp/CoolProp.pyx":370
 *         is_iterable5 = iterable(in5)
 * 
 *         if _numpy_supported and is_iterable3 and isinstance(in3, np.ndarray) and (np.prod(in3.shape) != max(in3.shape)):             # <<<<<<<<<<<<<<
 *             raise ValueError("Input 3 is not one-dimensional")
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):
 */
    }

    /* "CoolProp/CoolProp.pyx":372
 *         if _numpy_supported and is_iterable3 and isinstance(in3, np.ndarray) and (np.prod(in3.shape) != max(in3.shape)):
 *             raise ValueError("Input 3 is not one-dimensional")
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):             # <<<<<<<<<<<<<<
 *             raise ValueError("Input 5 is not one-dimensional")
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_numpy_supported); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L16_bool_binop_done;
    }
    __pyx_t_2 = (__pyx_v_is_iterable5 != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L16_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ndarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_2 = PyObject_IsInstance(__pyx_v_in5, __pyx_t_6); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = (__pyx_t_2 != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_3 = __pyx_t_1;
      goto __pyx_L16_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_prod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_in5, __pyx_n_s_shape); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __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_6 = (__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_6)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_in5, __pyx_n_s_shape); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_3 = __pyx_t_1;
    __pyx_L16_bool_binop_done:;
    if (unlikely(__pyx_t_3)) {

      /* "CoolProp/CoolProp.pyx":373
 *             raise ValueError("Input 3 is not one-dimensional")
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):
 *             raise ValueError("Input 5 is not one-dimensional")             # <<<<<<<<<<<<<<
 * 
 *         if is_iterable1 or is_iterable3 or is_iterable5:
 */
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 373, __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, 373, __pyx_L1_error)

      /* "CoolProp/CoolProp.pyx":372
 *         if _numpy_supported and is_iterable3 and isinstance(in3, np.ndarray) and (np.prod(in3.shape) != max(in3.shape)):
 *             raise ValueError("Input 3 is not one-dimensional")
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):             # <<<<<<<<<<<<<<
 *             raise ValueError("Input 5 is not one-dimensional")
 * 
 */
    }

    /* "CoolProp/CoolProp.pyx":375
 *             raise ValueError("Input 5 is not one-dimensional")
 * 
 *         if is_iterable1 or is_iterable3 or is_iterable5:             # <<<<<<<<<<<<<<
 *             # Prepare the output datatype
 *             if not is_iterable1:
 */
    __pyx_t_1 = (__pyx_v_is_iterable1 != 0);
    if (!__pyx_t_1) {
    } else {
      __pyx_t_3 = __pyx_t_1;
      goto __pyx_L21_bool_binop_done;
    }
    __pyx_t_1 = (__pyx_v_is_iterable3 != 0);
    if (!__pyx_t_1) {
    } else {
      __pyx_t_3 = __pyx_t_1;
      goto __pyx_L21_bool_binop_done;
    }
    __pyx_t_1 = (__pyx_v_is_iterable5 != 0);
    __pyx_t_3 = __pyx_t_1;
    __pyx_L21_bool_binop_done:;
    if (__pyx_t_3) {

      /* "CoolProp/CoolProp.pyx":377
 *         if is_iterable1 or is_iterable3 or is_iterable5:
 *             # Prepare the output datatype
 *             if not is_iterable1:             # <<<<<<<<<<<<<<
 *                 vin1.push_back(in1)
 *             else:
 */
      __pyx_t_3 = ((!(__pyx_v_is_iterable1 != 0)) != 0);
      if (__pyx_t_3) {

        /* "CoolProp/CoolProp.pyx":378
 *             # Prepare the output datatype
 *             if not is_iterable1:
 *                 vin1.push_back(in1)             # <<<<<<<<<<<<<<
 *             else:
 *                 vin1 = in1
 */
        __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 378, __pyx_L1_error)
        try {
          __pyx_v_vin1.push_back(__pyx_t_5);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 378, __pyx_L1_error)
        }

        /* "CoolProp/CoolProp.pyx":377
 *         if is_iterable1 or is_iterable3 or is_iterable5:
 *             # Prepare the output datatype
 *             if not is_iterable1:             # <<<<<<<<<<<<<<
 *                 vin1.push_back(in1)
 *             else:
 */
        goto __pyx_L24;
      }

      /* "CoolProp/CoolProp.pyx":380
 *                 vin1.push_back(in1)
 *             else:
 *                 vin1 = in1             # <<<<<<<<<<<<<<
 * 
 *             # Resize state variable inputs
 */
      /*else*/ {
        __pyx_t_10 = __pyx_convert_vector_from_py_std_3a__3a_string(__pyx_v_in1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 380, __pyx_L1_error)
        __pyx_v_vin1 = __pyx_t_10;
      }
      __pyx_L24:;

      /* "CoolProp/CoolProp.pyx":383
 * 
 *             # Resize state variable inputs
 *             if is_iterable3 and is_iterable5:             # <<<<<<<<<<<<<<
 *                 if len(in3) != len(in5):
 *                     raise TypeError("Sizes of Prop1 {n1:d} and Prop2 {n2:d} to PropsSI are not the same".format(n1 = len(in3), n2 = len(in5)))
 */
      __pyx_t_1 = (__pyx_v_is_iterable3 != 0);
      if (__pyx_t_1) {
      } else {
        __pyx_t_3 = __pyx_t_1;
        goto __pyx_L26_bool_binop_done;
      }
      __pyx_t_1 = (__pyx_v_is_iterable5 != 0);
      __pyx_t_3 = __pyx_t_1;
      __pyx_L26_bool_binop_done:;
      if (__pyx_t_3) {

        /* "CoolProp/CoolProp.pyx":384
 *             # Resize state variable inputs
 *             if is_iterable3 and is_iterable5:
 *                 if len(in3) != len(in5):             # <<<<<<<<<<<<<<
 *                     raise TypeError("Sizes of Prop1 {n1:d} and Prop2 {n2:d} to PropsSI are not the same".format(n1 = len(in3), n2 = len(in5)))
 *                 else:
 */
        __pyx_t_11 = PyObject_Length(__pyx_v_in3); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 384, __pyx_L1_error)
        __pyx_t_12 = PyObject_Length(__pyx_v_in5); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 384, __pyx_L1_error)
        __pyx_t_3 = ((__pyx_t_11 != __pyx_t_12) != 0);
        if (unlikely(__pyx_t_3)) {

          /* "CoolProp/CoolProp.pyx":385
 *             if is_iterable3 and is_iterable5:
 *                 if len(in3) != len(in5):
 *                     raise TypeError("Sizes of Prop1 {n1:d} and Prop2 {n2:d} to PropsSI are not the same".format(n1 = len(in3), n2 = len(in5)))             # <<<<<<<<<<<<<<
 *                 else:
 *                     vval1 = in3
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Sizes_of_Prop1_n1_d_and_Prop2_n2, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_12 = PyObject_Length(__pyx_v_in3); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 385, __pyx_L1_error)
          __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_n1, __pyx_t_6) < 0) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_12 = PyObject_Length(__pyx_v_in5); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 385, __pyx_L1_error)
          __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_n2, __pyx_t_6) < 0) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_empty_tuple, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_Raise(__pyx_t_8, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __PYX_ERR(0, 385, __pyx_L1_error)

          /* "CoolProp/CoolProp.pyx":384
 *             # Resize state variable inputs
 *             if is_iterable3 and is_iterable5:
 *                 if len(in3) != len(in5):             # <<<<<<<<<<<<<<
 *                     raise TypeError("Sizes of Prop1 {n1:d} and Prop2 {n2:d} to PropsSI are not the same".format(n1 = len(in3), n2 = len(in5)))
 *                 else:
 */
        }

        /* "CoolProp/CoolProp.pyx":387
 *                     raise TypeError("Sizes of Prop1 {n1:d} and Prop2 {n2:d} to PropsSI are not the same".format(n1 = len(in3), n2 = len(in5)))
 *                 else:
 *                     vval1 = in3             # <<<<<<<<<<<<<<
 *                     vval2 = in5
 *             elif is_iterable3 and not is_iterable5:
 */
        /*else*/ {
          __pyx_t_13 = __pyx_convert_vector_from_py_double(__pyx_v_in3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 387, __pyx_L1_error)
          __pyx_v_vval1 = __pyx_t_13;

          /* "CoolProp/CoolProp.pyx":388
 *                 else:
 *                     vval1 = in3
 *                     vval2 = in5             # <<<<<<<<<<<<<<
 *             elif is_iterable3 and not is_iterable5:
 *                 vval1 = in3
 */
          __pyx_t_13 = __pyx_convert_vector_from_py_double(__pyx_v_in5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L1_error)
          __pyx_v_vval2 = __pyx_t_13;
        }

        /* "CoolProp/CoolProp.pyx":383
 * 
 *             # Resize state variable inputs
 *             if is_iterable3 and is_iterable5:             # <<<<<<<<<<<<<<
 *                 if len(in3) != len(in5):
 *                     raise TypeError("Sizes of Prop1 {n1:d} and Prop2 {n2:d} to PropsSI are not the same".format(n1 = len(in3), n2 = len(in5)))
 */
        goto __pyx_L25;
      }

      /* "CoolProp/CoolProp.pyx":389
 *                     vval1 = in3
 *                     vval2 = in5
 *             elif is_iterable3 and not is_iterable5:             # <<<<<<<<<<<<<<
 *                 vval1 = in3
 *                 vval2.resize(len(in3))
 */
      __pyx_t_1 = (__pyx_v_is_iterable3 != 0);
      if (__pyx_t_1) {
      } else {
        __pyx_t_3 = __pyx_t_1;
        goto __pyx_L29_bool_binop_done;
      }
      __pyx_t_1 = ((!(__pyx_v_is_iterable5 != 0)) != 0);
      __pyx_t_3 = __pyx_t_1;
      __pyx_L29_bool_binop_done:;
      if (__pyx_t_3) {

        /* "CoolProp/CoolProp.pyx":390
 *                     vval2 = in5
 *             elif is_iterable3 and not is_iterable5:
 *                 vval1 = in3             # <<<<<<<<<<<<<<
 *                 vval2.resize(len(in3))
 *                 templist = [in5]*len(in3)
 */
        __pyx_t_13 = __pyx_convert_vector_from_py_double(__pyx_v_in3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 390, __pyx_L1_error)
        __pyx_v_vval1 = __pyx_t_13;

        /* "CoolProp/CoolProp.pyx":391
 *             elif is_iterable3 and not is_iterable5:
 *                 vval1 = in3
 *                 vval2.resize(len(in3))             # <<<<<<<<<<<<<<
 *                 templist = [in5]*len(in3)
 *                 vval2 = templist
 */
        __pyx_t_12 = PyObject_Length(__pyx_v_in3); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 391, __pyx_L1_error)
        try {
          __pyx_v_vval2.resize(__pyx_t_12);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 391, __pyx_L1_error)
        }

        /* "CoolProp/CoolProp.pyx":392
 *                 vval1 = in3
 *                 vval2.resize(len(in3))
 *                 templist = [in5]*len(in3)             # <<<<<<<<<<<<<<
 *                 vval2 = templist
 *             elif is_iterable5 and not is_iterable3:
 */
        __pyx_t_12 = PyObject_Length(__pyx_v_in3); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 392, __pyx_L1_error)
        __pyx_t_8 = PyList_New(1 * ((__pyx_t_12<0) ? 0:__pyx_t_12)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 392, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        { Py_ssize_t __pyx_temp;
          for (__pyx_temp=0; __pyx_temp < __pyx_t_12; __pyx_temp++) {
            __Pyx_INCREF(__pyx_v_in5);
            __Pyx_GIVEREF(__pyx_v_in5);
            PyList_SET_ITEM(__pyx_t_8, __pyx_temp, __pyx_v_in5);
          }
        }
        __pyx_v_templist = ((PyObject*)__pyx_t_8);
        __pyx_t_8 = 0;

        /* "CoolProp/CoolProp.pyx":393
 *                 vval2.resize(len(in3))
 *                 templist = [in5]*len(in3)
 *                 vval2 = templist             # <<<<<<<<<<<<<<
 *             elif is_iterable5 and not is_iterable3:
 *                 vval1.resize(len(in5))
 */
        __pyx_t_13 = __pyx_convert_vector_from_py_double(__pyx_v_templist); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 393, __pyx_L1_error)
        __pyx_v_vval2 = __pyx_t_13;

        /* "CoolProp/CoolProp.pyx":389
 *                     vval1 = in3
 *                     vval2 = in5
 *             elif is_iterable3 and not is_iterable5:             # <<<<<<<<<<<<<<
 *                 vval1 = in3
 *                 vval2.resize(len(in3))
 */
        goto __pyx_L25;
      }

      /* "CoolProp/CoolProp.pyx":394
 *                 templist = [in5]*len(in3)
 *                 vval2 = templist
 *             elif is_iterable5 and not is_iterable3:             # <<<<<<<<<<<<<<
 *                 vval1.resize(len(in5))
 *                 templist = [in3]*len(in5)
 */
      __pyx_t_1 = (__pyx_v_is_iterable5 != 0);
      if (__pyx_t_1) {
      } else {
        __pyx_t_3 = __pyx_t_1;
        goto __pyx_L31_bool_binop_done;
      }
      __pyx_t_1 = ((!(__pyx_v_is_iterable3 != 0)) != 0);
      __pyx_t_3 = __pyx_t_1;
      __pyx_L31_bool_binop_done:;
      if (__pyx_t_3) {

        /* "CoolProp/CoolProp.pyx":395
 *                 vval2 = templist
 *             elif is_iterable5 and not is_iterable3:
 *                 vval1.resize(len(in5))             # <<<<<<<<<<<<<<
 *                 templist = [in3]*len(in5)
 *                 vval1 = templist
 */
        __pyx_t_12 = PyObject_Length(__pyx_v_in5); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 395, __pyx_L1_error)
        try {
          __pyx_v_vval1.resize(__pyx_t_12);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 395, __pyx_L1_error)
        }

        /* "CoolProp/CoolProp.pyx":396
 *             elif is_iterable5 and not is_iterable3:
 *                 vval1.resize(len(in5))
 *                 templist = [in3]*len(in5)             # <<<<<<<<<<<<<<
 *                 vval1 = templist
 *                 vval2 = in5
 */
        __pyx_t_12 = PyObject_Length(__pyx_v_in5); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 396, __pyx_L1_error)
        __pyx_t_8 = PyList_New(1 * ((__pyx_t_12<0) ? 0:__pyx_t_12)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        { Py_ssize_t __pyx_temp;
          for (__pyx_temp=0; __pyx_temp < __pyx_t_12; __pyx_temp++) {
            __Pyx_INCREF(__pyx_v_in3);
            __Pyx_GIVEREF(__pyx_v_in3);
            PyList_SET_ITEM(__pyx_t_8, __pyx_temp, __pyx_v_in3);
          }
        }
        __pyx_v_templist = ((PyObject*)__pyx_t_8);
        __pyx_t_8 = 0;

        /* "CoolProp/CoolProp.pyx":397
 *                 vval1.resize(len(in5))
 *                 templist = [in3]*len(in5)
 *                 vval1 = templist             # <<<<<<<<<<<<<<
 *                 vval2 = in5
 *             else:
 */
        __pyx_t_13 = __pyx_convert_vector_from_py_double(__pyx_v_templist); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 397, __pyx_L1_error)
        __pyx_v_vval1 = __pyx_t_13;

        /* "CoolProp/CoolProp.pyx":398
 *                 templist = [in3]*len(in5)
 *                 vval1 = templist
 *                 vval2 = in5             # <<<<<<<<<<<<<<
 *             else:
 *                 vval1.resize(1)
 */
        __pyx_t_13 = __pyx_convert_vector_from_py_double(__pyx_v_in5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 398, __pyx_L1_error)
        __pyx_v_vval2 = __pyx_t_13;

        /* "CoolProp/CoolProp.pyx":394
 *                 templist = [in5]*len(in3)
 *                 vval2 = templist
 *             elif is_iterable5 and not is_iterable3:             # <<<<<<<<<<<<<<
 *                 vval1.resize(len(in5))
 *                 templist = [in3]*len(in5)
 */
        goto __pyx_L25;
      }

      /* "CoolProp/CoolProp.pyx":400
 *                 vval2 = in5
 *             else:
 *                 vval1.resize(1)             # <<<<<<<<<<<<<<
 *                 vval1[0] = in3
 *                 vval2.resize(1)
 */
      /*else*/ {
        try {
          __pyx_v_vval1.resize(1);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 400, __pyx_L1_error)
        }

        /* "CoolProp/CoolProp.pyx":401
 *             else:
 *                 vval1.resize(1)
 *                 vval1[0] = in3             # <<<<<<<<<<<<<<
 *                 vval2.resize(1)
 *                 vval2[0] = in5
 */
        __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_v_in3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 401, __pyx_L1_error)
        (__pyx_v_vval1[0]) = __pyx_t_14;

        /* "CoolProp/CoolProp.pyx":402
 *                 vval1.resize(1)
 *                 vval1[0] = in3
 *                 vval2.resize(1)             # <<<<<<<<<<<<<<
 *                 vval2[0] = in5
 * 
 */
        try {
          __pyx_v_vval2.resize(1);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 402, __pyx_L1_error)
        }

        /* "CoolProp/CoolProp.pyx":403
 *                 vval1[0] = in3
 *                 vval2.resize(1)
 *                 vval2[0] = in5             # <<<<<<<<<<<<<<
 * 
 *             # Extract the backend and the fluid from the input string
 */
        __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_v_in5); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 403, __pyx_L1_error)
        (__pyx_v_vval2[0]) = __pyx_t_14;
      }
      __pyx_L25:;

      /* "CoolProp/CoolProp.pyx":406
 * 
 *             # Extract the backend and the fluid from the input string
 *             _extract_backend(in6, backend, fluid)             # <<<<<<<<<<<<<<
 * 
 *             # Extract the fractions
 */
      __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in6); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 406, __pyx_L1_error)
      try {
        CoolProp::extract_backend(__pyx_t_5, __pyx_v_backend, __pyx_v_fluid);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 406, __pyx_L1_error)
      }

      /* "CoolProp/CoolProp.pyx":409
 * 
 *             # Extract the fractions
 *             fractions.push_back(1.0)             # <<<<<<<<<<<<<<
 *             delimitedfluids = _extract_fractions(fluid, fractions)
 * 
 */
      try {
        __pyx_v_fractions.push_back(1.0);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 409, __pyx_L1_error)
      }

      /* "CoolProp/CoolProp.pyx":410
 *             # Extract the fractions
 *             fractions.push_back(1.0)
 *             delimitedfluids = _extract_fractions(fluid, fractions)             # <<<<<<<<<<<<<<
 * 
 *             # Extract the fluids
 */
      try {
        __pyx_t_5 = CoolProp::extract_fractions(__pyx_v_fluid, __pyx_v_fractions);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 410, __pyx_L1_error)
      }
      __pyx_v_delimitedfluids = __pyx_t_5;

      /* "CoolProp/CoolProp.pyx":413
 * 
 *             # Extract the fluids
 *             fluids = delimitedfluids.split('&')             # <<<<<<<<<<<<<<
 * 
 *             # Call the function - this version takes iterables
 */
      __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_delimitedfluids); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_split); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_8 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_kp_s__15) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_kp_s__15);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_fluids = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "CoolProp/CoolProp.pyx":416
 * 
 *             # Call the function - this version takes iterables
 *             outmat = _PropsSImulti(vin1, in2, vval1, in4, vval2, backend, fluids, fractions)             # <<<<<<<<<<<<<<
 * 
 *             # Check that we got some output
 */
      __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
      __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
      __pyx_t_10 = __pyx_convert_vector_from_py_std_3a__3a_string(__pyx_v_fluids); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
      __pyx_v_outmat = CoolProp::PropsSImulti(__pyx_v_vin1, __pyx_t_5, __pyx_v_vval1, __pyx_t_4, __pyx_v_vval2, __pyx_v_backend, __pyx_t_10, __pyx_v_fractions);

      /* "CoolProp/CoolProp.pyx":419
 * 
 *             # Check that we got some output
 *             if outmat.empty():             # <<<<<<<<<<<<<<
 *                 raise ValueError(_get_global_param_string('errstring'))
 * 
 */
      __pyx_t_3 = (__pyx_v_outmat.empty() != 0);
      if (unlikely(__pyx_t_3)) {

        /* "CoolProp/CoolProp.pyx":420
 *             # Check that we got some output
 *             if outmat.empty():
 *                 raise ValueError(_get_global_param_string('errstring'))             # <<<<<<<<<<<<<<
 * 
 *             return ndarray_or_iterable(outmat)
 */
        __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 420, __pyx_L1_error)
        try {
          __pyx_t_5 = CoolProp::get_global_param_string(__pyx_t_4);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 420, __pyx_L1_error)
        }
        __pyx_t_8 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 420, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 420, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_Raise(__pyx_t_7, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __PYX_ERR(0, 420, __pyx_L1_error)

        /* "CoolProp/CoolProp.pyx":419
 * 
 *             # Check that we got some output
 *             if outmat.empty():             # <<<<<<<<<<<<<<
 *                 raise ValueError(_get_global_param_string('errstring'))
 * 
 */
      }

      /* "CoolProp/CoolProp.pyx":422
 *                 raise ValueError(_get_global_param_string('errstring'))
 * 
 *             return ndarray_or_iterable(outmat)             # <<<<<<<<<<<<<<
 *         else:
 *             # This version takes doubles
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_7 = __pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(__pyx_v_outmat); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __pyx_f_8CoolProp_8CoolProp_ndarray_or_iterable(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 422, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L0;

      /* "CoolProp/CoolProp.pyx":375
 *             raise ValueError("Input 5 is not one-dimensional")
 * 
 *         if is_iterable1 or is_iterable3 or is_iterable5:             # <<<<<<<<<<<<<<
 *             # Prepare the output datatype
 *             if not is_iterable1:
 */
    }

    /* "CoolProp/CoolProp.pyx":425
 *         else:
 *             # This version takes doubles
 *             val = _PropsSI(in1, in2, in3, in4, in5, in6)             # <<<<<<<<<<<<<<
 *             if not _ValidNumber(val):
 *                 __Props_err2("PropsSI", in1, in2, in3, in4, in5, in6)
 */
    /*else*/ {
      __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
      __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_v_in3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
      __pyx_t_15 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
      __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_v_in5); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
      __pyx_t_17 = __pyx_convert_string_from_py_std__in_string(__pyx_v_in6); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
      __pyx_v_val = CoolProp::PropsSI(__pyx_t_5, __pyx_t_4, __pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_t_17);

      /* "CoolProp/CoolProp.pyx":426
 *             # This version takes doubles
 *             val = _PropsSI(in1, in2, in3, in4, in5, in6)
 *             if not _ValidNumber(val):             # <<<<<<<<<<<<<<
 *                 __Props_err2("PropsSI", in1, in2, in3, in4, in5, in6)
 *             else:
 */
      __pyx_t_3 = ((!(ValidNumber(__pyx_v_val) != 0)) != 0);
      if (__pyx_t_3) {

        /* "CoolProp/CoolProp.pyx":427
 *             val = _PropsSI(in1, in2, in3, in4, in5, in6)
 *             if not _ValidNumber(val):
 *                 __Props_err2("PropsSI", in1, in2, in3, in4, in5, in6)             # <<<<<<<<<<<<<<
 *             else:
 *                 return val
 */
        __pyx_t_8 = __pyx_f_8CoolProp_8CoolProp___Props_err2(__pyx_n_s_PropsSI, __pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5, __pyx_v_in6, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 427, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "CoolProp/CoolProp.pyx":426
 *             # This version takes doubles
 *             val = _PropsSI(in1, in2, in3, in4, in5, in6)
 *             if not _ValidNumber(val):             # <<<<<<<<<<<<<<
 *                 __Props_err2("PropsSI", in1, in2, in3, in4, in5, in6)
 *             else:
 */
        goto __pyx_L34;
      }

      /* "CoolProp/CoolProp.pyx":429
 *                 __Props_err2("PropsSI", in1, in2, in3, in4, in5, in6)
 *             else:
 *                 return val             # <<<<<<<<<<<<<<
 *     else:
 *         raise ValueError('input #7 cannot be provided')
 */
      /*else*/ {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_8 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 429, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_r = __pyx_t_8;
        __pyx_t_8 = 0;
        goto __pyx_L0;
      }
      __pyx_L34:;
    }

    /* "CoolProp/CoolProp.pyx":365
 *             return val
 *     # Six parameter inputs
 *     elif in7 is None:             # <<<<<<<<<<<<<<
 *         is_iterable1 = iterable(in1)
 *         is_iterable3 = iterable(in3)
 */
    goto __pyx_L3;
  }

  /* "CoolProp/CoolProp.pyx":431
 *                 return val
 *     else:
 *         raise ValueError('input #7 cannot be provided')             # <<<<<<<<<<<<<<
 * 
 * cpdef list FluidsList():
 */
  /*else*/ {
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 431, __pyx_L1_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(0, 431, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "CoolProp/CoolProp.pyx":347
 *     return _PhaseSI(in1, in2, in3, in4, in5)
 * 
 * cpdef PropsSI(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None, in7 = None):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::PropsSI` .
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.PropsSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_templist);
  __Pyx_XDECREF(__pyx_v_fluids);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_63PropsSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_62PropsSI[] = "\n    A Python wrapper of C++ function :cpapi:`CoolProp::PropsSI` .\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_63PropsSI(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_in1 = 0;
  PyObject *__pyx_v_in2 = 0;
  PyObject *__pyx_v_in3 = 0;
  PyObject *__pyx_v_in4 = 0;
  PyObject *__pyx_v_in5 = 0;
  PyObject *__pyx_v_in6 = 0;
  PyObject *__pyx_v_in7 = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("PropsSI (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_in1,&__pyx_n_s_in2,&__pyx_n_s_in3,&__pyx_n_s_in4,&__pyx_n_s_in5,&__pyx_n_s_in6,&__pyx_n_s_in7,0};
    PyObject* values[7] = {0,0,0,0,0,0,0};
    values[2] = ((PyObject *)Py_None);
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)Py_None);
    values[5] = ((PyObject *)Py_None);
    values[6] = ((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  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_in1)) != 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_in2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("PropsSI", 0, 2, 7, 1); __PYX_ERR(0, 347, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in3);
          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_in4);
          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_in5);
          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_in6);
          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_in7);
          if (value) { values[6] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "PropsSI") < 0)) __PYX_ERR(0, 347, __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);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_in1 = values[0];
    __pyx_v_in2 = values[1];
    __pyx_v_in3 = values[2];
    __pyx_v_in4 = values[3];
    __pyx_v_in5 = values[4];
    __pyx_v_in6 = values[5];
    __pyx_v_in7 = values[6];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("PropsSI", 0, 2, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 347, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.PropsSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_62PropsSI(__pyx_self, __pyx_v_in1, __pyx_v_in2, __pyx_v_in3, __pyx_v_in4, __pyx_v_in5, __pyx_v_in6, __pyx_v_in7);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_62PropsSI(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_in1, PyObject *__pyx_v_in2, PyObject *__pyx_v_in3, PyObject *__pyx_v_in4, PyObject *__pyx_v_in5, PyObject *__pyx_v_in6, PyObject *__pyx_v_in7) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8CoolProp_8CoolProp_PropsSI __pyx_t_2;
  __Pyx_RefNannySetupContext("PropsSI", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 5;
  __pyx_t_2.in3 = __pyx_v_in3;
  __pyx_t_2.in4 = __pyx_v_in4;
  __pyx_t_2.in5 = __pyx_v_in5;
  __pyx_t_2.in6 = __pyx_v_in6;
  __pyx_t_2.in7 = __pyx_v_in7;
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_PropsSI(__pyx_v_in1, __pyx_v_in2, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __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("CoolProp.CoolProp.PropsSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":433
 *         raise ValueError('input #7 cannot be provided')
 * 
 * cpdef list FluidsList():             # <<<<<<<<<<<<<<
 *     """
 *     Return a list of strings of all fluid names
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_65FluidsList(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_FluidsList(CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::string __pyx_t_2;
  std::string __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("FluidsList", 0);

  /* "CoolProp/CoolProp.pyx":452
 * 
 *     """
 *     return _get_global_param_string("FluidsList").split(',')             # <<<<<<<<<<<<<<
 * 
 * cpdef get_aliases(string Fluid):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_FluidsList); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 452, __pyx_L1_error)
  try {
    __pyx_t_3 = CoolProp::get_global_param_string(__pyx_t_2);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 452, __pyx_L1_error)
  }
  __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 452, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __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_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_s__17) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s__17);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 452, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 452, __pyx_L1_error)
  __pyx_r = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":433
 *         raise ValueError('input #7 cannot be provided')
 * 
 * cpdef list FluidsList():             # <<<<<<<<<<<<<<
 *     """
 *     Return a list of strings of all fluid names
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("CoolProp.CoolProp.FluidsList", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_65FluidsList(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_64FluidsList[] = "\n    Return a list of strings of all fluid names\n\n    Returns\n    -------\n    FluidsList : list of strings of fluid names\n        All the fluids that are included in CoolProp\n\n    Notes\n    -----\n\n    Here is an example::\n\n       In [0]: from CoolProp.CoolProp import FluidsList\n\n       In [1]: FluidsList()\n\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_65FluidsList(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("FluidsList (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_64FluidsList(__pyx_self);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_64FluidsList(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("FluidsList", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_FluidsList(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 433, __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("CoolProp.CoolProp.FluidsList", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":454
 *     return _get_global_param_string("FluidsList").split(',')
 * 
 * cpdef get_aliases(string Fluid):             # <<<<<<<<<<<<<<
 *     """
 *     Return a comma separated string of aliases for the given fluid
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_67get_aliases(PyObject *__pyx_self, PyObject *__pyx_arg_Fluid); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_get_aliases(std::string __pyx_v_Fluid, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_v__Fluid = 0;
  PyObject *__pyx_v_F = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  std::string __pyx_t_5;
  std::string __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  __Pyx_RefNannySetupContext("get_aliases", 0);

  /* "CoolProp/CoolProp.pyx":458
 *     Return a comma separated string of aliases for the given fluid
 *     """
 *     cdef bytes _Fluid = Fluid.encode('ascii')             # <<<<<<<<<<<<<<
 *     return [F for F in _get_fluid_param_string(_Fluid, 'aliases').split(',')]
 * 
 */
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Fluid); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  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_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_n_s_ascii) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_s_ascii);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 458, __pyx_L1_error)
  __pyx_v__Fluid = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":459
 *     """
 *     cdef bytes _Fluid = Fluid.encode('ascii')
 *     return [F for F in _get_fluid_param_string(_Fluid, 'aliases').split(',')]             # <<<<<<<<<<<<<<
 * 
 * cpdef string get_REFPROPname(string Fluid):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_v__Fluid); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 459, __pyx_L1_error)
  __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_aliases); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 459, __pyx_L1_error)
  try {
    __pyx_t_6 = CoolProp::get_fluid_param_string(__pyx_t_4, __pyx_t_5);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 459, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_2, __pyx_kp_s__17) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_kp_s__17);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_7 = __pyx_t_3; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 459, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 459, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_7))) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 459, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 459, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_9(__pyx_t_7);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 459, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_F, __pyx_t_3);
    __pyx_t_3 = 0;
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_F))) __PYX_ERR(0, 459, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":454
 *     return _get_global_param_string("FluidsList").split(',')
 * 
 * cpdef get_aliases(string Fluid):             # <<<<<<<<<<<<<<
 *     """
 *     Return a comma separated string of aliases for the given fluid
 */

  /* 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_7);
  __Pyx_AddTraceback("CoolProp.CoolProp.get_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__Fluid);
  __Pyx_XDECREF(__pyx_v_F);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_67get_aliases(PyObject *__pyx_self, PyObject *__pyx_arg_Fluid); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_66get_aliases[] = "\n    Return a comma separated string of aliases for the given fluid\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_67get_aliases(PyObject *__pyx_self, PyObject *__pyx_arg_Fluid) {
  std::string __pyx_v_Fluid;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_aliases (wrapper)", 0);
  assert(__pyx_arg_Fluid); {
    __pyx_v_Fluid = __pyx_convert_string_from_py_std__in_string(__pyx_arg_Fluid); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 454, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_66get_aliases(__pyx_self, ((std::string)__pyx_v_Fluid));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_66get_aliases(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_Fluid) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_aliases", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_get_aliases(__pyx_v_Fluid, 0); 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("CoolProp.CoolProp.get_aliases", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":461
 *     return [F for F in _get_fluid_param_string(_Fluid, 'aliases').split(',')]
 * 
 * cpdef string get_REFPROPname(string Fluid):             # <<<<<<<<<<<<<<
 *     """
 *     Return the REFPROP compatible name for the fluid
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_69get_REFPROPname(PyObject *__pyx_self, PyObject *__pyx_arg_Fluid); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_REFPROPname(std::string __pyx_v_Fluid, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  __Pyx_RefNannySetupContext("get_REFPROPname", 0);

  /* "CoolProp/CoolProp.pyx":477
 *        In [2]: PropsSI('D', 'T', 300, 'P', 300, Fluid)
 *     """
 *     return _get_fluid_param_string(Fluid,'REFPROP_name')             # <<<<<<<<<<<<<<
 * 
 * cpdef string get_BibTeXKey(string Fluid, string key) except *:
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_REFPROP_name); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 477, __pyx_L1_error)
  try {
    __pyx_t_2 = CoolProp::get_fluid_param_string(__pyx_v_Fluid, __pyx_t_1);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 477, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":461
 *     return [F for F in _get_fluid_param_string(_Fluid, 'aliases').split(',')]
 * 
 * cpdef string get_REFPROPname(string Fluid):             # <<<<<<<<<<<<<<
 *     """
 *     Return the REFPROP compatible name for the fluid
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_REFPROPname", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_69get_REFPROPname(PyObject *__pyx_self, PyObject *__pyx_arg_Fluid); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_68get_REFPROPname[] = "\n    Return the REFPROP compatible name for the fluid\n\n    Some fluids do not use the REFPROP name.  For instance,\n    ammonia is R717, and propane is R290.  You can still can still call CoolProp\n    using the name ammonia or R717, but REFPROP requires that you use a limited\n    subset of names.  Therefore, this function that returns the REFPROP compatible\n    name.  To then use this to call REFPROP, you would do something like::\n\n       In [0]: from CoolProp.CoolProp import get_REFPROPname, PropsSI\n\n       In [1]: get_REFPROPname('R290')\n\n       In [2]: PropsSI('D', 'T', 300, 'P', 300, Fluid)\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_69get_REFPROPname(PyObject *__pyx_self, PyObject *__pyx_arg_Fluid) {
  std::string __pyx_v_Fluid;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_REFPROPname (wrapper)", 0);
  assert(__pyx_arg_Fluid); {
    __pyx_v_Fluid = __pyx_convert_string_from_py_std__in_string(__pyx_arg_Fluid); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 461, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_REFPROPname", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_68get_REFPROPname(__pyx_self, ((std::string)__pyx_v_Fluid));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_68get_REFPROPname(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_Fluid) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_REFPROPname", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_8CoolProp_8CoolProp_get_REFPROPname(__pyx_v_Fluid, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 461, __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("CoolProp.CoolProp.get_REFPROPname", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":479
 *     return _get_fluid_param_string(Fluid,'REFPROP_name')
 * 
 * cpdef string get_BibTeXKey(string Fluid, string key) except *:             # <<<<<<<<<<<<<<
 *     """
 *     Return the BibTeX key for the given fluid.
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_71get_BibTeXKey(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_BibTeXKey(std::string __pyx_v_Fluid, std::string __pyx_v_key, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  std::string __pyx_t_3;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("get_BibTeXKey", 0);

  /* "CoolProp/CoolProp.pyx":501
 *          empty string if Fluid not in CoolProp, "Bad key" if key is invalid
 *     """
 *     return _get_fluid_param_string(Fluid, "BibTeX-"+key)             # <<<<<<<<<<<<<<
 * 
 * cpdef string get_errstr():
 */
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Add(__pyx_kp_s_BibTeX, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __pyx_convert_string_from_py_std__in_string(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  try {
    __pyx_t_4 = CoolProp::get_fluid_param_string(__pyx_v_Fluid, __pyx_t_3);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 501, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":479
 *     return _get_fluid_param_string(Fluid,'REFPROP_name')
 * 
 * cpdef string get_BibTeXKey(string Fluid, string key) except *:             # <<<<<<<<<<<<<<
 *     """
 *     Return the BibTeX key for the given fluid.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.get_BibTeXKey", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_71get_BibTeXKey(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_70get_BibTeXKey[] = "\n    Return the BibTeX key for the given fluid.\n\n    The possible keys are\n\n    * ``EOS``\n    * ``CP0``\n    * ``VISCOSITY``\n    * ``CONDUCTIVITY``\n    * ``ECS_LENNARD_JONES``\n    * ``ECS_FITS``\n    * ``SURFACE_TENSION``\n    * ``MELTING_LINE``\n\n    BibTeX keys refer to the BibTeX file in the trunk/CoolProp folder\n\n    Returns\n    -------\n    key, string\n         empty string if Fluid not in CoolProp, \"Bad key\" if key is invalid\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_71get_BibTeXKey(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_Fluid;
  std::string __pyx_v_key;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_BibTeXKey (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Fluid,&__pyx_n_s_key,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_Fluid)) != 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_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("get_BibTeXKey", 1, 2, 2, 1); __PYX_ERR(0, 479, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_BibTeXKey") < 0)) __PYX_ERR(0, 479, __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_Fluid = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 479, __pyx_L3_error)
    __pyx_v_key = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 479, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_BibTeXKey", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 479, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.get_BibTeXKey", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_70get_BibTeXKey(__pyx_self, __pyx_v_Fluid, __pyx_v_key);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_70get_BibTeXKey(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_Fluid, std::string __pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_BibTeXKey", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_get_BibTeXKey(__pyx_v_Fluid, __pyx_v_key, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.get_BibTeXKey", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":503
 *     return _get_fluid_param_string(Fluid, "BibTeX-"+key)
 * 
 * cpdef string get_errstr():             # <<<<<<<<<<<<<<
 *     """
 *     Return the current error string
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_73get_errstr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static std::string __pyx_f_8CoolProp_8CoolProp_get_errstr(CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  std::string __pyx_t_2;
  __Pyx_RefNannySetupContext("get_errstr", 0);

  /* "CoolProp/CoolProp.pyx":507
 *     Return the current error string
 *     """
 *     return _get_global_param_string("errstring")             # <<<<<<<<<<<<<<
 * 
 * cpdef set_debug_level(int level):
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_errstring); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 507, __pyx_L1_error)
  try {
    __pyx_t_2 = CoolProp::get_global_param_string(__pyx_t_1);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 507, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":503
 *     return _get_fluid_param_string(Fluid, "BibTeX-"+key)
 * 
 * cpdef string get_errstr():             # <<<<<<<<<<<<<<
 *     """
 *     Return the current error string
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_errstr", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_73get_errstr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_72get_errstr[] = "\n    Return the current error string\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_73get_errstr(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_errstr (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_72get_errstr(__pyx_self);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_72get_errstr(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_errstr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_8CoolProp_8CoolProp_get_errstr(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 503, __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("CoolProp.CoolProp.get_errstr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":509
 *     return _get_global_param_string("errstring")
 * 
 * cpdef set_debug_level(int level):             # <<<<<<<<<<<<<<
 *     """
 *     Set the current debug level as integer in the range [0,10]
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_75set_debug_level(PyObject *__pyx_self, PyObject *__pyx_arg_level); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_set_debug_level(int __pyx_v_level, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_debug_level", 0);

  /* "CoolProp/CoolProp.pyx":520
 *         the more verbose the output will be
 *     """
 *     _set_debug_level(level)             # <<<<<<<<<<<<<<
 * 
 * cpdef int get_debug_level():
 */
  try {
    CoolProp::set_debug_level(__pyx_v_level);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 520, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":509
 *     return _get_global_param_string("errstring")
 * 
 * cpdef set_debug_level(int level):             # <<<<<<<<<<<<<<
 *     """
 *     Set the current debug level as integer in the range [0,10]
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_75set_debug_level(PyObject *__pyx_self, PyObject *__pyx_arg_level); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_74set_debug_level[] = "\n    Set the current debug level as integer in the range [0,10]\n\n    Parameters\n    ----------\n    level : int\n        If level is 0, no output will be written to screen, if >0,\n        some output will be written to screen.  The larger level is,\n        the more verbose the output will be\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_75set_debug_level(PyObject *__pyx_self, PyObject *__pyx_arg_level) {
  int __pyx_v_level;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_debug_level (wrapper)", 0);
  assert(__pyx_arg_level); {
    __pyx_v_level = __Pyx_PyInt_As_int(__pyx_arg_level); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.set_debug_level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_74set_debug_level(__pyx_self, ((int)__pyx_v_level));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_74set_debug_level(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_level) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_debug_level", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_set_debug_level(__pyx_v_level, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __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("CoolProp.CoolProp.set_debug_level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":522
 *     _set_debug_level(level)
 * 
 * cpdef int get_debug_level():             # <<<<<<<<<<<<<<
 *     """
 *     Return the current debug level as integer
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_77get_debug_level(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static int __pyx_f_8CoolProp_8CoolProp_get_debug_level(CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("get_debug_level", 0);

  /* "CoolProp/CoolProp.pyx":533
 *         the more verbose the output will be
 *     """
 *     return _get_debug_level()             # <<<<<<<<<<<<<<
 * 
 * # cpdef bint IsFluidType(string Fluid, string Type):
 */
  try {
    __pyx_t_1 = CoolProp::get_debug_level();
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 533, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":522
 *     _set_debug_level(level)
 * 
 * cpdef int get_debug_level():             # <<<<<<<<<<<<<<
 *     """
 *     Return the current debug level as integer
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CoolProp.CoolProp.get_debug_level", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_77get_debug_level(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_76get_debug_level[] = "\n    Return the current debug level as integer\n\n    Returns\n    -------\n    level : int\n        If level is 0, no output will be written to screen, if >0,\n        some output will be written to screen.  The larger level is,\n        the more verbose the output will be\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_77get_debug_level(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_debug_level (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_76get_debug_level(__pyx_self);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_76get_debug_level(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_debug_level", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_8CoolProp_8CoolProp_get_debug_level(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __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("CoolProp.CoolProp.get_debug_level", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":554
 * 
 * 
 * cpdef extract_backend(string in_str):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::extract_backend` .
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_79extract_backend(PyObject *__pyx_self, PyObject *__pyx_arg_in_str); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_extract_backend(std::string __pyx_v_in_str, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_v_bck;
  std::string __pyx_v_fld;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("extract_backend", 0);

  /* "CoolProp/CoolProp.pyx":560
 *     cdef string bck, fld
 *     # Extract the backend and the fluid from the input string
 *     _extract_backend(in_str, bck, fld)             # <<<<<<<<<<<<<<
 *     return bck, fld
 * 
 */
  try {
    CoolProp::extract_backend(__pyx_v_in_str, __pyx_v_bck, __pyx_v_fld);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 560, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":561
 *     # Extract the backend and the fluid from the input string
 *     _extract_backend(in_str, bck, fld)
 *     return bck, fld             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_bck); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_fld); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":554
 * 
 * 
 * cpdef extract_backend(string in_str):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::extract_backend` .
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("CoolProp.CoolProp.extract_backend", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_79extract_backend(PyObject *__pyx_self, PyObject *__pyx_arg_in_str); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_78extract_backend[] = "\n    A Python wrapper of C++ function :cpapi:`CoolProp::extract_backend` .\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_79extract_backend(PyObject *__pyx_self, PyObject *__pyx_arg_in_str) {
  std::string __pyx_v_in_str;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("extract_backend (wrapper)", 0);
  assert(__pyx_arg_in_str); {
    __pyx_v_in_str = __pyx_convert_string_from_py_std__in_string(__pyx_arg_in_str); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 554, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.extract_backend", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_78extract_backend(__pyx_self, ((std::string)__pyx_v_in_str));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_78extract_backend(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_in_str) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("extract_backend", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_extract_backend(__pyx_v_in_str, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __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("CoolProp.CoolProp.extract_backend", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":564
 * 
 * 
 * cpdef extract_fractions(string flds):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::extract_fractions` .
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_81extract_fractions(PyObject *__pyx_self, PyObject *__pyx_arg_flds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_extract_fractions(std::string __pyx_v_flds, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::vector<double>  __pyx_v_frcs;
  std::string __pyx_v_del_flds;
  PyObject *__pyx_v_fluids = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("extract_fractions", 0);

  /* "CoolProp/CoolProp.pyx":572
 *     # Extract the fractions
 *     #frcs.clear()
 *     frcs.push_back(1.0)             # <<<<<<<<<<<<<<
 *     del_flds = _extract_fractions(flds, frcs)
 *     # Extract the fluids
 */
  try {
    __pyx_v_frcs.push_back(1.0);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 572, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":573
 *     #frcs.clear()
 *     frcs.push_back(1.0)
 *     del_flds = _extract_fractions(flds, frcs)             # <<<<<<<<<<<<<<
 *     # Extract the fluids
 *     fluids = del_flds.split('&')
 */
  try {
    __pyx_t_1 = CoolProp::extract_fractions(__pyx_v_flds, __pyx_v_frcs);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 573, __pyx_L1_error)
  }
  __pyx_v_del_flds = __pyx_t_1;

  /* "CoolProp/CoolProp.pyx":575
 *     del_flds = _extract_fractions(flds, frcs)
 *     # Extract the fluids
 *     fluids = del_flds.split('&')             # <<<<<<<<<<<<<<
 *     return fluids,frcs
 * 
 */
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_del_flds); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(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_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_s__15) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s__15);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_fluids = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":576
 *     # Extract the fluids
 *     fluids = del_flds.split('&')
 *     return fluids,frcs             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_convert_vector_to_py_double(__pyx_v_frcs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_fluids);
  __Pyx_GIVEREF(__pyx_v_fluids);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_fluids);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":564
 * 
 * 
 * cpdef extract_fractions(string flds):             # <<<<<<<<<<<<<<
 *     """
 *     A Python wrapper of C++ function :cpapi:`CoolProp::extract_fractions` .
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("CoolProp.CoolProp.extract_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_fluids);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_81extract_fractions(PyObject *__pyx_self, PyObject *__pyx_arg_flds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_80extract_fractions[] = "\n    A Python wrapper of C++ function :cpapi:`CoolProp::extract_fractions` .\n    ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_81extract_fractions(PyObject *__pyx_self, PyObject *__pyx_arg_flds) {
  std::string __pyx_v_flds;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("extract_fractions (wrapper)", 0);
  assert(__pyx_arg_flds); {
    __pyx_v_flds = __pyx_convert_string_from_py_std__in_string(__pyx_arg_flds); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 564, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.extract_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_80extract_fractions(__pyx_self, ((std::string)__pyx_v_flds));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_80extract_fractions(CYTHON_UNUSED PyObject *__pyx_self, std::string __pyx_v_flds) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("extract_fractions", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_extract_fractions(__pyx_v_flds, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __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("CoolProp.CoolProp.extract_fractions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":579
 * 
 * 
 * cdef toSI(constants_header.parameters key, double val):             # <<<<<<<<<<<<<<
 *     """
 *     Convert a value in kSI system to SI system (supports a limited subset of variables)
 */

static PyObject *__pyx_f_8CoolProp_8CoolProp_toSI(CoolProp::parameters __pyx_v_key, double __pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("toSI", 0);

  /* "CoolProp/CoolProp.pyx":583
 *     Convert a value in kSI system to SI system (supports a limited subset of variables)
 *     """
 *     if key in [iT, iDmass, iQ]:             # <<<<<<<<<<<<<<
 *         return val
 *     elif key in [iP, iHmass, iSmass, iUmass]:
 */
  switch (__pyx_v_key) {
    case CoolProp::iT:
    case CoolProp::iDmass:
    case CoolProp::iQ:

    /* "CoolProp/CoolProp.pyx":584
 *     """
 *     if key in [iT, iDmass, iQ]:
 *         return val             # <<<<<<<<<<<<<<
 *     elif key in [iP, iHmass, iSmass, iUmass]:
 *         return val*1000
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "CoolProp/CoolProp.pyx":583
 *     Convert a value in kSI system to SI system (supports a limited subset of variables)
 *     """
 *     if key in [iT, iDmass, iQ]:             # <<<<<<<<<<<<<<
 *         return val
 *     elif key in [iP, iHmass, iSmass, iUmass]:
 */
    break;
    case CoolProp::iP:

    /* "CoolProp/CoolProp.pyx":585
 *     if key in [iT, iDmass, iQ]:
 *         return val
 *     elif key in [iP, iHmass, iSmass, iUmass]:             # <<<<<<<<<<<<<<
 *         return val*1000
 *     else:
 */
    case CoolProp::iHmass:
    case CoolProp::iSmass:
    case CoolProp::iUmass:

    /* "CoolProp/CoolProp.pyx":586
 *         return val
 *     elif key in [iP, iHmass, iSmass, iUmass]:
 *         return val*1000             # <<<<<<<<<<<<<<
 *     else:
 *         raise KeyError('key is invalid to toSI')
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_val * 1000.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 586, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "CoolProp/CoolProp.pyx":585
 *     if key in [iT, iDmass, iQ]:
 *         return val
 *     elif key in [iP, iHmass, iSmass, iUmass]:             # <<<<<<<<<<<<<<
 *         return val*1000
 *     else:
 */
    break;
    default:

    /* "CoolProp/CoolProp.pyx":588
 *         return val*1000
 *     else:
 *         raise KeyError('key is invalid to toSI')             # <<<<<<<<<<<<<<
 * 
 * #A dictionary mapping parameter index to string for use with non-CoolProp fluids
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_KeyError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 588, __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, 588, __pyx_L1_error)
    break;
  }

  /* "CoolProp/CoolProp.pyx":579
 * 
 * 
 * cdef toSI(constants_header.parameters key, double val):             # <<<<<<<<<<<<<<
 *     """
 *     Convert a value in kSI system to SI system (supports a limited subset of variables)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.toSI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":640
 *     """
 * 
 *     def __init__(self, object _Fluid, dict StateDict, object phase = None, backend = None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameters
 */

/* Python wrapper */
static int __pyx_pw_8CoolProp_8CoolProp_5State_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State___init__[] = "\n        Parameters\n        ----------\n        Fluid : string\n        StateDict : dictionary\n            The state of the fluid - passed to the update function; if None, does not do a state update\n        phase : string\n            DEPRECATED : this input is ignored\n        backend : string\n            The CoolProp backend that should be used, one of \"HEOS\" (default), \"REFPROP\", \"INCOMP\", \"BRINE\", etc.\n        ";
#if CYTHON_COMPILING_IN_CPYTHON
struct wrapperbase __pyx_wrapperbase_8CoolProp_8CoolProp_5State___init__;
#endif
static int __pyx_pw_8CoolProp_8CoolProp_5State_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v__Fluid = 0;
  PyObject *__pyx_v_StateDict = 0;
  PyObject *__pyx_v_phase = 0;
  PyObject *__pyx_v_backend = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Fluid_2,&__pyx_n_s_StateDict,&__pyx_n_s_phase,&__pyx_n_s_backend,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = ((PyObject *)Py_None);
    values[3] = ((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  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_Fluid_2)) != 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_StateDict)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, 1); __PYX_ERR(0, 640, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_phase);
          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_backend);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 640, __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);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v__Fluid = values[0];
    __pyx_v_StateDict = ((PyObject*)values[1]);
    __pyx_v_phase = values[2];
    __pyx_v_backend = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 640, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.State.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_StateDict), (&PyDict_Type), 1, "StateDict", 1))) __PYX_ERR(0, 640, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State___init__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), __pyx_v__Fluid, __pyx_v_StateDict, __pyx_v_phase, __pyx_v_backend);

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

static int __pyx_pf_8CoolProp_8CoolProp_5State___init__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v__Fluid, PyObject *__pyx_v_StateDict, PyObject *__pyx_v_phase, PyObject *__pyx_v_backend) {
  std::string __pyx_v_Fluid;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  std::string __pyx_t_1;
  int __pyx_t_2;
  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)(PyObject *);
  std::string __pyx_t_9;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v__Fluid);
  __Pyx_INCREF(__pyx_v_backend);

  /* "CoolProp/CoolProp.pyx":652
 *             The CoolProp backend that should be used, one of "HEOS" (default), "REFPROP", "INCOMP", "BRINE", etc.
 *         """
 *         cdef string Fluid = _Fluid             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v__Fluid); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 652, __pyx_L1_error)
  __pyx_v_Fluid = __pyx_t_1;

  /* "CoolProp/CoolProp.pyx":655
 * 
 * 
 *         if Fluid == b'none':             # <<<<<<<<<<<<<<
 *             return
 *         else:
 */
  __pyx_t_2 = ((__pyx_v_Fluid == ((char const *)"none")) != 0);
  if (__pyx_t_2) {

    /* "CoolProp/CoolProp.pyx":656
 * 
 *         if Fluid == b'none':
 *             return             # <<<<<<<<<<<<<<
 *         else:
 *             if b'::' in <bytes>Fluid:
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "CoolProp/CoolProp.pyx":655
 * 
 * 
 *         if Fluid == b'none':             # <<<<<<<<<<<<<<
 *             return
 *         else:
 */
  }

  /* "CoolProp/CoolProp.pyx":658
 *             return
 *         else:
 *             if b'::' in <bytes>Fluid:             # <<<<<<<<<<<<<<
 *                 backend, _Fluid = (<bytes>Fluid).split(b'::')
 *             elif backend is None:
 */
  /*else*/ {
    __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Fluid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__19, __pyx_t_3, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 658, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (__pyx_t_4) {

      /* "CoolProp/CoolProp.pyx":659
 *         else:
 *             if b'::' in <bytes>Fluid:
 *                 backend, _Fluid = (<bytes>Fluid).split(b'::')             # <<<<<<<<<<<<<<
 *             elif backend is None:
 *                 backend = u'?'
 */
      __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Fluid); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 659, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 659, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_kp_b__19) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_kp_b__19);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 659, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        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, 659, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        #else
        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 659, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 659, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 659, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
        index = 0; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_6);
        index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 659, __pyx_L1_error)
        __pyx_t_8 = NULL;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L6_unpacking_done;
        __pyx_L5_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, 659, __pyx_L1_error)
        __pyx_L6_unpacking_done:;
      }
      __Pyx_DECREF_SET(__pyx_v_backend, __pyx_t_6);
      __pyx_t_6 = 0;
      __Pyx_DECREF_SET(__pyx_v__Fluid, __pyx_t_5);
      __pyx_t_5 = 0;

      /* "CoolProp/CoolProp.pyx":658
 *             return
 *         else:
 *             if b'::' in <bytes>Fluid:             # <<<<<<<<<<<<<<
 *                 backend, _Fluid = (<bytes>Fluid).split(b'::')
 *             elif backend is None:
 */
      goto __pyx_L4;
    }

    /* "CoolProp/CoolProp.pyx":660
 *             if b'::' in <bytes>Fluid:
 *                 backend, _Fluid = (<bytes>Fluid).split(b'::')
 *             elif backend is None:             # <<<<<<<<<<<<<<
 *                 backend = u'?'
 * 
 */
    __pyx_t_4 = (__pyx_v_backend == Py_None);
    __pyx_t_2 = (__pyx_t_4 != 0);
    if (__pyx_t_2) {

      /* "CoolProp/CoolProp.pyx":661
 *                 backend, _Fluid = (<bytes>Fluid).split(b'::')
 *             elif backend is None:
 *                 backend = u'?'             # <<<<<<<<<<<<<<
 * 
 *             self.set_Fluid(_Fluid, backend)
 */
      __Pyx_INCREF(__pyx_kp_u__20);
      __Pyx_DECREF_SET(__pyx_v_backend, __pyx_kp_u__20);

      /* "CoolProp/CoolProp.pyx":660
 *             if b'::' in <bytes>Fluid:
 *                 backend, _Fluid = (<bytes>Fluid).split(b'::')
 *             elif backend is None:             # <<<<<<<<<<<<<<
 *                 backend = u'?'
 * 
 */
    }
    __pyx_L4:;

    /* "CoolProp/CoolProp.pyx":663
 *                 backend = u'?'
 * 
 *             self.set_Fluid(_Fluid, backend)             # <<<<<<<<<<<<<<
 *         self.Fluid = Fluid
 * 
 */
    __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_v__Fluid); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
    __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_v_backend); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
    __pyx_t_3 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->set_Fluid(__pyx_v_self, __pyx_t_1, __pyx_t_9, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }

  /* "CoolProp/CoolProp.pyx":664
 * 
 *             self.set_Fluid(_Fluid, backend)
 *         self.Fluid = Fluid             # <<<<<<<<<<<<<<
 * 
 *         # Parse the inputs provided
 */
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Fluid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF(__pyx_v_self->Fluid);
  __Pyx_DECREF(__pyx_v_self->Fluid);
  __pyx_v_self->Fluid = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "CoolProp/CoolProp.pyx":667
 * 
 *         # Parse the inputs provided
 *         if StateDict is not None:             # <<<<<<<<<<<<<<
 *             self.update(StateDict)
 * 
 */
  __pyx_t_2 = (__pyx_v_StateDict != ((PyObject*)Py_None));
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {

    /* "CoolProp/CoolProp.pyx":668
 *         # Parse the inputs provided
 *         if StateDict is not None:
 *             self.update(StateDict)             # <<<<<<<<<<<<<<
 * 
 *         if phase is None:
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->update(__pyx_v_self, __pyx_v_StateDict, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 668, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":667
 * 
 *         # Parse the inputs provided
 *         if StateDict is not None:             # <<<<<<<<<<<<<<
 *             self.update(StateDict)
 * 
 */
  }

  /* "CoolProp/CoolProp.pyx":670
 *             self.update(StateDict)
 * 
 *         if phase is None:             # <<<<<<<<<<<<<<
 *             self.phase = b'??'
 *         else:
 */
  __pyx_t_4 = (__pyx_v_phase == Py_None);
  __pyx_t_2 = (__pyx_t_4 != 0);
  if (__pyx_t_2) {

    /* "CoolProp/CoolProp.pyx":671
 * 
 *         if phase is None:
 *             self.phase = b'??'             # <<<<<<<<<<<<<<
 *         else:
 *             self.phase = phase.encode('ascii')
 */
    __Pyx_INCREF(__pyx_kp_b__21);
    __Pyx_GIVEREF(__pyx_kp_b__21);
    __Pyx_GOTREF(__pyx_v_self->phase);
    __Pyx_DECREF(__pyx_v_self->phase);
    __pyx_v_self->phase = __pyx_kp_b__21;

    /* "CoolProp/CoolProp.pyx":670
 *             self.update(StateDict)
 * 
 *         if phase is None:             # <<<<<<<<<<<<<<
 *             self.phase = b'??'
 *         else:
 */
    goto __pyx_L8;
  }

  /* "CoolProp/CoolProp.pyx":673
 *             self.phase = b'??'
 *         else:
 *             self.phase = phase.encode('ascii')             # <<<<<<<<<<<<<<
 * 
 *         # Set the phase flag
 */
  /*else*/ {
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_phase, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 673, __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_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ascii) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ascii);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 673, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 673, __pyx_L1_error)
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_GOTREF(__pyx_v_self->phase);
    __Pyx_DECREF(__pyx_v_self->phase);
    __pyx_v_self->phase = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L8:;

  /* "CoolProp/CoolProp.pyx":676
 * 
 *         # Set the phase flag
 *         if self.phase.lower() == 'gas':             # <<<<<<<<<<<<<<
 *             self.pAS.specify_phase(constants_header.iphase_gas)
 *         elif self.phase.lower() == 'liquid':
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->phase, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 676, __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_3 = (__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_3)) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_gas, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 676, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "CoolProp/CoolProp.pyx":677
 *         # Set the phase flag
 *         if self.phase.lower() == 'gas':
 *             self.pAS.specify_phase(constants_header.iphase_gas)             # <<<<<<<<<<<<<<
 *         elif self.phase.lower() == 'liquid':
 *             self.pAS.specify_phase(constants_header.iphase_liquid)
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->specify_phase(__pyx_v_self->pAS, CoolProp::iphase_gas, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":676
 * 
 *         # Set the phase flag
 *         if self.phase.lower() == 'gas':             # <<<<<<<<<<<<<<
 *             self.pAS.specify_phase(constants_header.iphase_gas)
 *         elif self.phase.lower() == 'liquid':
 */
    goto __pyx_L9;
  }

  /* "CoolProp/CoolProp.pyx":678
 *         if self.phase.lower() == 'gas':
 *             self.pAS.specify_phase(constants_header.iphase_gas)
 *         elif self.phase.lower() == 'liquid':             # <<<<<<<<<<<<<<
 *             self.pAS.specify_phase(constants_header.iphase_liquid)
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->phase, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __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_3 = (__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_3)) __PYX_ERR(0, 678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_liquid, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 678, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {

    /* "CoolProp/CoolProp.pyx":679
 *             self.pAS.specify_phase(constants_header.iphase_gas)
 *         elif self.phase.lower() == 'liquid':
 *             self.pAS.specify_phase(constants_header.iphase_liquid)             # <<<<<<<<<<<<<<
 * 
 * #     def __reduce__(self):
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->specify_phase(__pyx_v_self->pAS, CoolProp::iphase_liquid, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 679, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":678
 *         if self.phase.lower() == 'gas':
 *             self.pAS.specify_phase(constants_header.iphase_gas)
 *         elif self.phase.lower() == 'liquid':             # <<<<<<<<<<<<<<
 *             self.pAS.specify_phase(constants_header.iphase_liquid)
 * 
 */
  }
  __pyx_L9:;

  /* "CoolProp/CoolProp.pyx":640
 *     """
 * 
 *     def __init__(self, object _Fluid, dict StateDict, object phase = None, backend = None):             # <<<<<<<<<<<<<<
 *         """
 *         Parameters
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__Fluid);
  __Pyx_XDECREF(__pyx_v_backend);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":689
 * #         return rebuildState,(d,)
 * 
 *     cpdef set_Fluid(self, string Fluid, string backend):             # <<<<<<<<<<<<<<
 * 
 *         cdef object _Fluid = Fluid
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_3set_Fluid(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_set_Fluid(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, std::string __pyx_v_Fluid, std::string __pyx_v_backend, int __pyx_skip_dispatch) {
  PyObject *__pyx_v__Fluid = 0;
  PyObject *__pyx_v__backend = 0;
  int __pyx_v_set_fractions;
  PyObject *__pyx_v_new_fluid = NULL;
  PyObject *__pyx_v_fracs = NULL;
  PyObject *__pyx_v_pairs = NULL;
  PyObject *__pyx_v_pair = NULL;
  PyObject *__pyx_v_fluid = NULL;
  PyObject *__pyx_v_frac = NULL;
  PyObject *__pyx_r = NULL;
  __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;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  Py_ssize_t __pyx_t_12;
  PyObject *(*__pyx_t_13)(PyObject *);
  PyObject *(*__pyx_t_14)(PyObject *);
  int __pyx_t_15;
  std::vector<double>  __pyx_t_16;
  __Pyx_RefNannySetupContext("set_Fluid", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_Fluid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 689, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_3set_Fluid)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Fluid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 689, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_backend); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 689, __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, 689, __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, 689, __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, 689, __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, 689, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":691
 *     cpdef set_Fluid(self, string Fluid, string backend):
 * 
 *         cdef object _Fluid = Fluid             # <<<<<<<<<<<<<<
 *         cdef object _backend = backend
 *         cdef bint set_fractions = False
 */
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_Fluid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__Fluid = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":692
 * 
 *         cdef object _Fluid = Fluid
 *         cdef object _backend = backend             # <<<<<<<<<<<<<<
 *         cdef bint set_fractions = False
 *         new_fluid = []
 */
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_backend); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 692, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__backend = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":693
 *         cdef object _Fluid = Fluid
 *         cdef object _backend = backend
 *         cdef bint set_fractions = False             # <<<<<<<<<<<<<<
 *         new_fluid = []
 *         fracs = []
 */
  __pyx_v_set_fractions = 0;

  /* "CoolProp/CoolProp.pyx":694
 *         cdef object _backend = backend
 *         cdef bint set_fractions = False
 *         new_fluid = []             # <<<<<<<<<<<<<<
 *         fracs = []
 *         if '[' in _Fluid and ']' in _Fluid:
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_new_fluid = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":695
 *         cdef bint set_fractions = False
 *         new_fluid = []
 *         fracs = []             # <<<<<<<<<<<<<<
 *         if '[' in _Fluid and ']' in _Fluid:
 *             pairs = _Fluid.split('&')
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_fracs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":696
 *         new_fluid = []
 *         fracs = []
 *         if '[' in _Fluid and ']' in _Fluid:             # <<<<<<<<<<<<<<
 *             pairs = _Fluid.split('&')
 *             for pair in pairs:
 */
  __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s__22, __pyx_v__Fluid, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 696, __pyx_L1_error)
  __pyx_t_11 = (__pyx_t_10 != 0);
  if (__pyx_t_11) {
  } else {
    __pyx_t_9 = __pyx_t_11;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_11 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s__23, __pyx_v__Fluid, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 696, __pyx_L1_error)
  __pyx_t_10 = (__pyx_t_11 != 0);
  __pyx_t_9 = __pyx_t_10;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_9) {

    /* "CoolProp/CoolProp.pyx":697
 *         fracs = []
 *         if '[' in _Fluid and ']' in _Fluid:
 *             pairs = _Fluid.split('&')             # <<<<<<<<<<<<<<
 *             for pair in pairs:
 *                 fluid, frac = pair.split('[')
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v__Fluid, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 697, __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_kp_s__15) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s__15);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_pairs = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":698
 *         if '[' in _Fluid and ']' in _Fluid:
 *             pairs = _Fluid.split('&')
 *             for pair in pairs:             # <<<<<<<<<<<<<<
 *                 fluid, frac = pair.split('[')
 *                 new_fluid.append(fluid)
 */
    if (likely(PyList_CheckExact(__pyx_v_pairs)) || PyTuple_CheckExact(__pyx_v_pairs)) {
      __pyx_t_1 = __pyx_v_pairs; __Pyx_INCREF(__pyx_t_1); __pyx_t_12 = 0;
      __pyx_t_13 = NULL;
    } else {
      __pyx_t_12 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_pairs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_13 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 698, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_13)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 698, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 698, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_13(__pyx_t_1);
        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, 698, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_pair, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "CoolProp/CoolProp.pyx":699
 *             pairs = _Fluid.split('&')
 *             for pair in pairs:
 *                 fluid, frac = pair.split('[')             # <<<<<<<<<<<<<<
 *                 new_fluid.append(fluid)
 *                 fracs.append(float(frac.strip(']')))
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pair, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 699, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_8, __pyx_kp_s__22) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_s__22);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        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, 699, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_8);
        #else
        __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 699, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 699, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 699, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_14 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_5 = __pyx_t_14(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        index = 1; __pyx_t_8 = __pyx_t_14(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_4), 2) < 0) __PYX_ERR(0, 699, __pyx_L1_error)
        __pyx_t_14 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L9_unpacking_done;
        __pyx_L8_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_14 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 699, __pyx_L1_error)
        __pyx_L9_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_fluid, __pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_frac, __pyx_t_8);
      __pyx_t_8 = 0;

      /* "CoolProp/CoolProp.pyx":700
 *             for pair in pairs:
 *                 fluid, frac = pair.split('[')
 *                 new_fluid.append(fluid)             # <<<<<<<<<<<<<<
 *                 fracs.append(float(frac.strip(']')))
 *             _Fluid = '&'.join(new_fluid)
 */
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_new_fluid, __pyx_v_fluid); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 700, __pyx_L1_error)

      /* "CoolProp/CoolProp.pyx":701
 *                 fluid, frac = pair.split('[')
 *                 new_fluid.append(fluid)
 *                 fracs.append(float(frac.strip(']')))             # <<<<<<<<<<<<<<
 *             _Fluid = '&'.join(new_fluid)
 *             set_fractions = True
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frac, __pyx_n_s_strip); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_kp_s__23) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_kp_s__23);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 701, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyNumber_Float(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_fracs, __pyx_t_8); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 701, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "CoolProp/CoolProp.pyx":698
 *         if '[' in _Fluid and ']' in _Fluid:
 *             pairs = _Fluid.split('&')
 *             for pair in pairs:             # <<<<<<<<<<<<<<
 *                 fluid, frac = pair.split('[')
 *                 new_fluid.append(fluid)
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":702
 *                 new_fluid.append(fluid)
 *                 fracs.append(float(frac.strip(']')))
 *             _Fluid = '&'.join(new_fluid)             # <<<<<<<<<<<<<<
 *             set_fractions = True
 * 
 */
    __pyx_t_1 = __Pyx_PyString_Join(__pyx_kp_s__15, __pyx_v_new_fluid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v__Fluid, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":703
 *                 fracs.append(float(frac.strip(']')))
 *             _Fluid = '&'.join(new_fluid)
 *             set_fractions = True             # <<<<<<<<<<<<<<
 * 
 *         self.pAS = AbstractState(_backend, _Fluid)
 */
    __pyx_v_set_fractions = 1;

    /* "CoolProp/CoolProp.pyx":696
 *         new_fluid = []
 *         fracs = []
 *         if '[' in _Fluid and ']' in _Fluid:             # <<<<<<<<<<<<<<
 *             pairs = _Fluid.split('&')
 *             for pair in pairs:
 */
  }

  /* "CoolProp/CoolProp.pyx":705
 *             set_fractions = True
 * 
 *         self.pAS = AbstractState(_backend, _Fluid)             # <<<<<<<<<<<<<<
 *         if set_fractions:
 *             self.pAS.set_mole_fractions(fracs)
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v__backend);
  __Pyx_GIVEREF(__pyx_v__backend);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__backend);
  __Pyx_INCREF(__pyx_v__Fluid);
  __Pyx_GIVEREF(__pyx_v__Fluid);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v__Fluid);
  __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_AbstractState), __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GIVEREF(__pyx_t_8);
  __Pyx_GOTREF(__pyx_v_self->pAS);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->pAS));
  __pyx_v_self->pAS = ((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "CoolProp/CoolProp.pyx":706
 * 
 *         self.pAS = AbstractState(_backend, _Fluid)
 *         if set_fractions:             # <<<<<<<<<<<<<<
 *             self.pAS.set_mole_fractions(fracs)
 * 
 */
  __pyx_t_9 = (__pyx_v_set_fractions != 0);
  if (__pyx_t_9) {

    /* "CoolProp/CoolProp.pyx":707
 *         self.pAS = AbstractState(_backend, _Fluid)
 *         if set_fractions:
 *             self.pAS.set_mole_fractions(fracs)             # <<<<<<<<<<<<<<
 * 
 *     cpdef update_ph(self, double p, double h):
 */
    __pyx_t_16 = __pyx_convert_vector_from_py_double(__pyx_v_fracs); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 707, __pyx_L1_error)
    __pyx_t_8 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->set_mole_fractions(__pyx_v_self->pAS, __pyx_t_16, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "CoolProp/CoolProp.pyx":706
 * 
 *         self.pAS = AbstractState(_backend, _Fluid)
 *         if set_fractions:             # <<<<<<<<<<<<<<
 *             self.pAS.set_mole_fractions(fracs)
 * 
 */
  }

  /* "CoolProp/CoolProp.pyx":689
 * #         return rebuildState,(d,)
 * 
 *     cpdef set_Fluid(self, string Fluid, string backend):             # <<<<<<<<<<<<<<
 * 
 *         cdef object _Fluid = Fluid
 */

  /* 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("CoolProp.CoolProp.State.set_Fluid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v__Fluid);
  __Pyx_XDECREF(__pyx_v__backend);
  __Pyx_XDECREF(__pyx_v_new_fluid);
  __Pyx_XDECREF(__pyx_v_fracs);
  __Pyx_XDECREF(__pyx_v_pairs);
  __Pyx_XDECREF(__pyx_v_pair);
  __Pyx_XDECREF(__pyx_v_fluid);
  __Pyx_XDECREF(__pyx_v_frac);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_3set_Fluid(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_3set_Fluid(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::string __pyx_v_Fluid;
  std::string __pyx_v_backend;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_Fluid (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Fluid,&__pyx_n_s_backend,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_Fluid)) != 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_backend)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_Fluid", 1, 2, 2, 1); __PYX_ERR(0, 689, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_Fluid") < 0)) __PYX_ERR(0, 689, __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_Fluid = __pyx_convert_string_from_py_std__in_string(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 689, __pyx_L3_error)
    __pyx_v_backend = __pyx_convert_string_from_py_std__in_string(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 689, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_Fluid", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 689, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.State.set_Fluid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_2set_Fluid(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), __pyx_v_Fluid, __pyx_v_backend);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2set_Fluid(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, std::string __pyx_v_Fluid, std::string __pyx_v_backend) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_Fluid", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_set_Fluid(__pyx_v_self, __pyx_v_Fluid, __pyx_v_backend, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 689, __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("CoolProp.CoolProp.State.set_Fluid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":709
 *             self.pAS.set_mole_fractions(fracs)
 * 
 *     cpdef update_ph(self, double p, double h):             # <<<<<<<<<<<<<<
 *         """
 *         Use the pressure and enthalpy directly
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_5update_ph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_update_ph(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_p, double __pyx_v_h, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  double __pyx_t_9;
  __Pyx_RefNannySetupContext("update_ph", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_ph); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_5update_ph)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_p); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_h); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __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, 709, __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, 709, __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, 709, __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, 709, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":720
 *             Enthalpy [kJ/kg]
 *         """
 *         self.pAS.update(HmassP_INPUTS, h*1000, p*1000)             # <<<<<<<<<<<<<<
 *         self.T_ = self.pAS.T()
 *         self.rho_ = self.pAS.rhomass()
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->update(__pyx_v_self->pAS, CoolProp::HmassP_INPUTS, (__pyx_v_h * 1000.0), (__pyx_v_p * 1000.0), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":721
 *         """
 *         self.pAS.update(HmassP_INPUTS, h*1000, p*1000)
 *         self.T_ = self.pAS.T()             # <<<<<<<<<<<<<<
 *         self.rho_ = self.pAS.rhomass()
 * 
 */
  __pyx_t_9 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->T(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 721, __pyx_L1_error)
  __pyx_v_self->T_ = __pyx_t_9;

  /* "CoolProp/CoolProp.pyx":722
 *         self.pAS.update(HmassP_INPUTS, h*1000, p*1000)
 *         self.T_ = self.pAS.T()
 *         self.rho_ = self.pAS.rhomass()             # <<<<<<<<<<<<<<
 * 
 *     cpdef update_Trho(self, double T, double rho):
 */
  __pyx_t_9 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->rhomass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 722, __pyx_L1_error)
  __pyx_v_self->rho_ = __pyx_t_9;

  /* "CoolProp/CoolProp.pyx":709
 *             self.pAS.set_mole_fractions(fracs)
 * 
 *     cpdef update_ph(self, double p, double h):             # <<<<<<<<<<<<<<
 *         """
 *         Use the pressure and enthalpy directly
 */

  /* 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("CoolProp.CoolProp.State.update_ph", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_5update_ph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_4update_ph[] = "\n        Use the pressure and enthalpy directly\n\n        Parameters\n        ----------\n        p: float\n            Pressure (absolute) [kPa]\n        h: float\n            Enthalpy [kJ/kg]\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_5update_ph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_p;
  double __pyx_v_h;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_ph (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_h,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_p)) != 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_h)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_ph", 1, 2, 2, 1); __PYX_ERR(0, 709, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_ph") < 0)) __PYX_ERR(0, 709, __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_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 709, __pyx_L3_error)
    __pyx_v_h = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 709, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_ph", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 709, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.State.update_ph", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_4update_ph(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), __pyx_v_p, __pyx_v_h);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4update_ph(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_p, double __pyx_v_h) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("update_ph", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_update_ph(__pyx_v_self, __pyx_v_p, __pyx_v_h, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __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("CoolProp.CoolProp.State.update_ph", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":724
 *         self.rho_ = self.pAS.rhomass()
 * 
 *     cpdef update_Trho(self, double T, double rho):             # <<<<<<<<<<<<<<
 *         """
 *         Just use the temperature and density directly for speed
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_7update_Trho(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_update_Trho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_T, double __pyx_v_rho, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __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;
  __Pyx_RefNannySetupContext("update_Trho", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update_Trho); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_7update_Trho)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_T); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 724, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_rho); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 724, __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, 724, __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, 724, __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, 724, __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, 724, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":735
 *             Density [kg/m^3]
 *         """
 *         self.T_ = T             # <<<<<<<<<<<<<<
 *         self.rho_ = rho
 *         self.pAS.update(DmassT_INPUTS, rho, T)
 */
  __pyx_v_self->T_ = __pyx_v_T;

  /* "CoolProp/CoolProp.pyx":736
 *         """
 *         self.T_ = T
 *         self.rho_ = rho             # <<<<<<<<<<<<<<
 *         self.pAS.update(DmassT_INPUTS, rho, T)
 * 
 */
  __pyx_v_self->rho_ = __pyx_v_rho;

  /* "CoolProp/CoolProp.pyx":737
 *         self.T_ = T
 *         self.rho_ = rho
 *         self.pAS.update(DmassT_INPUTS, rho, T)             # <<<<<<<<<<<<<<
 * 
 *     cpdef update(self, dict params):
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->update(__pyx_v_self->pAS, CoolProp::DmassT_INPUTS, __pyx_v_rho, __pyx_v_T, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":724
 *         self.rho_ = self.pAS.rhomass()
 * 
 *     cpdef update_Trho(self, double T, double rho):             # <<<<<<<<<<<<<<
 *         """
 *         Just use the temperature and density directly for speed
 */

  /* 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("CoolProp.CoolProp.State.update_Trho", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_7update_Trho(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_6update_Trho[] = "\n        Just use the temperature and density directly for speed\n\n        Parameters\n        ----------\n        T: float\n            Temperature [K]\n        rho: float\n            Density [kg/m^3]\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_7update_Trho(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_T;
  double __pyx_v_rho;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_Trho (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_T,&__pyx_n_s_rho,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_T)) != 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_rho)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_Trho", 1, 2, 2, 1); __PYX_ERR(0, 724, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_Trho") < 0)) __PYX_ERR(0, 724, __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_T = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_T == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 724, __pyx_L3_error)
    __pyx_v_rho = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_rho == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 724, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_Trho", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 724, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.State.update_Trho", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_6update_Trho(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), __pyx_v_T, __pyx_v_rho);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_6update_Trho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_T, double __pyx_v_rho) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("update_Trho", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_update_Trho(__pyx_v_self, __pyx_v_T, __pyx_v_rho, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __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("CoolProp.CoolProp.State.update_Trho", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":739
 *         self.pAS.update(DmassT_INPUTS, rho, T)
 * 
 *     cpdef update(self, dict params):             # <<<<<<<<<<<<<<
 *         """
 *         Parameters
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_9update(PyObject *__pyx_v_self, PyObject *__pyx_v_params); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_update(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v_params, int __pyx_skip_dispatch) {
  double __pyx_v_val1;
  double __pyx_v_val2;
  double __pyx_v_o1;
  double __pyx_v_o2;
  CoolProp::input_pairs __pyx_v_input_pair;
  PyObject *__pyx_v_items = NULL;
  PyObject *__pyx_v_key1 = NULL;
  PyObject *__pyx_v_key2 = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  CoolProp::parameters __pyx_t_5;
  double __pyx_t_6;
  CoolProp::parameters __pyx_t_7;
  CoolProp::input_pairs __pyx_t_8;
  __Pyx_RefNannySetupContext("update", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_update); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_9update)) {
        __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_params) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_params);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 739, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":748
 *         # Convert to integer_pair input
 * 
 *         cdef double p, val1, val2, o1 = 0, o2 = 0             # <<<<<<<<<<<<<<
 *         cdef long iInput1, iInput2
 *         cdef bytes errstr
 */
  __pyx_v_o1 = 0.0;
  __pyx_v_o2 = 0.0;

  /* "CoolProp/CoolProp.pyx":754
 * 
 *         # Convert inputs to input pair
 *         items = list(params.items())             # <<<<<<<<<<<<<<
 *         key1 = paras_inverse[items[0][0]]
 *         key2 = paras_inverse[items[1][0]]
 */
  if (unlikely(__pyx_v_params == Py_None)) {
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
    __PYX_ERR(0, 754, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_params); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_items = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":755
 *         # Convert inputs to input pair
 *         items = list(params.items())
 *         key1 = paras_inverse[items[0][0]]             # <<<<<<<<<<<<<<
 *         key2 = paras_inverse[items[1][0]]
 *         # Convert to SI units
 */
  if (unlikely(__pyx_v_8CoolProp_8CoolProp_paras_inverse == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 755, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_8CoolProp_8CoolProp_paras_inverse, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_key1 = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":756
 *         items = list(params.items())
 *         key1 = paras_inverse[items[0][0]]
 *         key2 = paras_inverse[items[1][0]]             # <<<<<<<<<<<<<<
 *         # Convert to SI units
 *         val1 = toSI(key1, items[0][1])
 */
  if (unlikely(__pyx_v_8CoolProp_8CoolProp_paras_inverse == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_items, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_8CoolProp_8CoolProp_paras_inverse, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_key2 = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":758
 *         key2 = paras_inverse[items[1][0]]
 *         # Convert to SI units
 *         val1 = toSI(key1, items[0][1])             # <<<<<<<<<<<<<<
 *         val2 = toSI(key2, items[1][1])
 * 
 */
  __pyx_t_5 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_v_key1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 758, __pyx_L1_error)
  __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_items, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_toSI(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 758, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_val1 = __pyx_t_6;

  /* "CoolProp/CoolProp.pyx":759
 *         # Convert to SI units
 *         val1 = toSI(key1, items[0][1])
 *         val2 = toSI(key2, items[1][1])             # <<<<<<<<<<<<<<
 * 
 *         input_pair = _generate_update_pair(key1, val1, key2, val2, o1, o2)
 */
  __pyx_t_5 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_v_key2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L1_error)
  __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_items, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_f_8CoolProp_8CoolProp_toSI(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 759, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_val2 = __pyx_t_6;

  /* "CoolProp/CoolProp.pyx":761
 *         val2 = toSI(key2, items[1][1])
 * 
 *         input_pair = _generate_update_pair(key1, val1, key2, val2, o1, o2)             # <<<<<<<<<<<<<<
 * 
 *         self.pAS.update(input_pair, o1, o2);
 */
  __pyx_t_5 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_v_key1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 761, __pyx_L1_error)
  __pyx_t_7 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_v_key2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 761, __pyx_L1_error)
  try {
    __pyx_t_8 = CoolProp::generate_update_pair(__pyx_t_5, __pyx_v_val1, __pyx_t_7, __pyx_v_val2, __pyx_v_o1, __pyx_v_o2);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 761, __pyx_L1_error)
  }
  __pyx_v_input_pair = __pyx_t_8;

  /* "CoolProp/CoolProp.pyx":763
 *         input_pair = _generate_update_pair(key1, val1, key2, val2, o1, o2)
 * 
 *         self.pAS.update(input_pair, o1, o2);             # <<<<<<<<<<<<<<
 * 
 *         self.T_ = self.pAS.T()
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->update(__pyx_v_self->pAS, __pyx_v_input_pair, __pyx_v_o1, __pyx_v_o2, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":765
 *         self.pAS.update(input_pair, o1, o2);
 * 
 *         self.T_ = self.pAS.T()             # <<<<<<<<<<<<<<
 *         self.p_ =  self.pAS.p()/1000;
 *         self.rho_ = self.pAS.rhomass()
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->T(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
  __pyx_v_self->T_ = __pyx_t_6;

  /* "CoolProp/CoolProp.pyx":766
 * 
 *         self.T_ = self.pAS.T()
 *         self.p_ =  self.pAS.p()/1000;             # <<<<<<<<<<<<<<
 *         self.rho_ = self.pAS.rhomass()
 * 
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->p(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 766, __pyx_L1_error)
  __pyx_v_self->p_ = (__pyx_t_6 / 1000.0);

  /* "CoolProp/CoolProp.pyx":767
 *         self.T_ = self.pAS.T()
 *         self.p_ =  self.pAS.p()/1000;
 *         self.rho_ = self.pAS.rhomass()             # <<<<<<<<<<<<<<
 * 
 *     cpdef long Phase(self) except *:
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->rhomass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 767, __pyx_L1_error)
  __pyx_v_self->rho_ = __pyx_t_6;

  /* "CoolProp/CoolProp.pyx":739
 *         self.pAS.update(DmassT_INPUTS, rho, T)
 * 
 *     cpdef update(self, dict params):             # <<<<<<<<<<<<<<
 *         """
 *         Parameters
 */

  /* 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("CoolProp.CoolProp.State.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_items);
  __Pyx_XDECREF(__pyx_v_key1);
  __Pyx_XDECREF(__pyx_v_key2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_9update(PyObject *__pyx_v_self, PyObject *__pyx_v_params); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_8update[] = "\n        Parameters\n        params, dictionary\n            A dictionary of terms to be updated, with keys equal to single-char inputs to the Props function,\n            for instance ``dict(T=298, P = 101.325)`` would be one standard atmosphere\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_9update(PyObject *__pyx_v_self, PyObject *__pyx_v_params) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_params), (&PyDict_Type), 1, "params", 1))) __PYX_ERR(0, 739, __pyx_L1_error)
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_8update(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), ((PyObject*)__pyx_v_params));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_8update(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v_params) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("update", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_update(__pyx_v_self, __pyx_v_params, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __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("CoolProp.CoolProp.State.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":769
 *         self.rho_ = self.pAS.rhomass()
 * 
 *     cpdef long Phase(self) except *:             # <<<<<<<<<<<<<<
 *         """
 *         Returns an integer flag for the phase of the fluid, where the flag value
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_11Phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static long __pyx_f_8CoolProp_8CoolProp_5State_Phase(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  long __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  long __pyx_t_5;
  int __pyx_t_6;
  CoolProp::phases __pyx_t_7;
  __Pyx_RefNannySetupContext("Phase", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 769, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_11Phase)) {
        __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, 769, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __Pyx_PyInt_As_long(__pyx_t_2); if (unlikely((__pyx_t_5 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":778
 *         """
 * 
 *         if self.is_CPFluid:             # <<<<<<<<<<<<<<
 *             return self.pAS.phase()
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_is_CPFluid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_6)) {

    /* "CoolProp/CoolProp.pyx":779
 * 
 *         if self.is_CPFluid:
 *             return self.pAS.phase()             # <<<<<<<<<<<<<<
 *         else:
 *             raise NotImplementedError("Phase not defined for fluids other than CoolProp fluids")
 */
    __pyx_t_7 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->phase(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 779, __pyx_L1_error)
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;

    /* "CoolProp/CoolProp.pyx":778
 *         """
 * 
 *         if self.is_CPFluid:             # <<<<<<<<<<<<<<
 *             return self.pAS.phase()
 *         else:
 */
  }

  /* "CoolProp/CoolProp.pyx":781
 *             return self.pAS.phase()
 *         else:
 *             raise NotImplementedError("Phase not defined for fluids other than CoolProp fluids")             # <<<<<<<<<<<<<<
 * 
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __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, 781, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":769
 *         self.rho_ = self.pAS.rhomass()
 * 
 *     cpdef long Phase(self) except *:             # <<<<<<<<<<<<<<
 *         """
 *         Returns an integer flag for the phase of the fluid, where the flag value
 */

  /* 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("CoolProp.CoolProp.State.Phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_11Phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_10Phase[] = "\n        Returns an integer flag for the phase of the fluid, where the flag value\n        is one of iLiquid, iSupercritical, iGas, iTwoPhase\n\n        These constants are defined in the phase_constants module, and are imported\n        into this module\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_11Phase(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Phase (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_10Phase(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_10Phase(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  long __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Phase", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_Phase(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.Phase", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":783
 *             raise NotImplementedError("Phase not defined for fluids other than CoolProp fluids")
 * 
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         if iOutput<0:
 *             raise ValueError('Your output is invalid')
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_13Props(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_Props(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput, int __pyx_skip_dispatch) {
  double __pyx_r;
  __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;
  double __pyx_t_6;
  int __pyx_t_7;
  __Pyx_RefNannySetupContext("Props", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_Props); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_13Props)) {
        __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(__pyx_v_iOutput); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 783, __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, 783, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 783, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_6;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":784
 * 
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:
 *         if iOutput<0:             # <<<<<<<<<<<<<<
 *             raise ValueError('Your output is invalid')
 *         return self.pAS.keyed_output(iOutput)
 */
  __pyx_t_7 = ((__pyx_v_iOutput < 0) != 0);
  if (unlikely(__pyx_t_7)) {

    /* "CoolProp/CoolProp.pyx":785
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:
 *         if iOutput<0:
 *             raise ValueError('Your output is invalid')             # <<<<<<<<<<<<<<
 *         return self.pAS.keyed_output(iOutput)
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __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, 785, __pyx_L1_error)

    /* "CoolProp/CoolProp.pyx":784
 * 
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:
 *         if iOutput<0:             # <<<<<<<<<<<<<<
 *             raise ValueError('Your output is invalid')
 *         return self.pAS.keyed_output(iOutput)
 */
  }

  /* "CoolProp/CoolProp.pyx":786
 *         if iOutput<0:
 *             raise ValueError('Your output is invalid')
 *         return self.pAS.keyed_output(iOutput)             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_Q(self) except *:
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->keyed_output(__pyx_v_self->pAS, __pyx_v_iOutput, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 786, __pyx_L1_error)
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":783
 *             raise NotImplementedError("Phase not defined for fluids other than CoolProp fluids")
 * 
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:             # <<<<<<<<<<<<<<
 *         if iOutput<0:
 *             raise ValueError('Your output is invalid')
 */

  /* 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("CoolProp.CoolProp.State.Props", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_13Props(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_13Props(PyObject *__pyx_v_self, PyObject *__pyx_arg_iOutput) {
  CoolProp::parameters __pyx_v_iOutput;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("Props (wrapper)", 0);
  assert(__pyx_arg_iOutput); {
    __pyx_v_iOutput = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_arg_iOutput)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 783, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.State.Props", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_12Props(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), ((CoolProp::parameters)__pyx_v_iOutput));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_12Props(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, CoolProp::parameters __pyx_v_iOutput) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("Props", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_Props(__pyx_v_self, __pyx_v_iOutput, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 783, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.Props", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":788
 *         return self.pAS.keyed_output(iOutput)
 * 
 *     cpdef double get_Q(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the quality [-] """
 *         return self.pAS.Q()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_15get_Q(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_Q(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_Q", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_Q); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 788, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_15get_Q)) {
        __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, 788, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 788, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":790
 *     cpdef double get_Q(self) except *:
 *         """ Get the quality [-] """
 *         return self.pAS.Q()             # <<<<<<<<<<<<<<
 *     property Q:
 *         """ The quality [-] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->Q(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 790, __pyx_L1_error)
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":788
 *         return self.pAS.keyed_output(iOutput)
 * 
 *     cpdef double get_Q(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the quality [-] """
 *         return self.pAS.Q()
 */

  /* 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("CoolProp.CoolProp.State.get_Q", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_15get_Q(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_14get_Q[] = " Get the quality [-] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_15get_Q(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_Q (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_14get_Q(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_14get_Q(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_Q", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_Q(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 788, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_Q", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":793
 *     property Q:
 *         """ The quality [-] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_Q()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1Q_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1Q_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_1Q___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1Q___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":794
 *         """ The quality [-] """
 *         def __get__(self):
 *             return self.get_Q()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_MM(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_Q(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 794, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":793
 *     property Q:
 *         """ The quality [-] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_Q()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.Q.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":796
 *             return self.get_Q()
 * 
 *     cpdef double get_MM(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole mass [kg/kmol] or [g/mol] """
 *         return self.pAS.molar_mass()*1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_17get_MM(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_MM(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_MM", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_MM); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_17get_MM)) {
        __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, 796, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 796, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":798
 *     cpdef double get_MM(self) except *:
 *         """ Get the mole mass [kg/kmol] or [g/mol] """
 *         return self.pAS.molar_mass()*1000             # <<<<<<<<<<<<<<
 *     property MM:
 *         """ The molar mass [kg/kmol] or [g/mol] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->molar_mass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 798, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 * 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":796
 *             return self.get_Q()
 * 
 *     cpdef double get_MM(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the mole mass [kg/kmol] or [g/mol] """
 *         return self.pAS.molar_mass()*1000
 */

  /* 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("CoolProp.CoolProp.State.get_MM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_17get_MM(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_16get_MM[] = " Get the mole mass [kg/kmol] or [g/mol] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_17get_MM(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_MM (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_16get_MM(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_16get_MM(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_MM", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_MM(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 796, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_MM", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":801
 *     property MM:
 *         """ The molar mass [kg/kmol] or [g/mol] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_MM()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_2MM_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_2MM_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_2MM___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2MM___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":802
 *         """ The molar mass [kg/kmol] or [g/mol] """
 *         def __get__(self):
 *             return self.get_MM()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_rho(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_MM(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 802, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":801
 *     property MM:
 *         """ The molar mass [kg/kmol] or [g/mol] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_MM()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.MM.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":804
 *             return self.get_MM()
 * 
 *     cpdef double get_rho(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the density [kg/m^3] """
 *         return self.pAS.rhomass()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_19get_rho(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_rho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_rho", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_rho); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_19get_rho)) {
        __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, 804, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 804, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":806
 *     cpdef double get_rho(self) except *:
 *         """ Get the density [kg/m^3] """
 *         return self.pAS.rhomass()             # <<<<<<<<<<<<<<
 *     property rho:
 *         """ The density [kg/m^3] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->rhomass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 806, __pyx_L1_error)
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":804
 *             return self.get_MM()
 * 
 *     cpdef double get_rho(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the density [kg/m^3] """
 *         return self.pAS.rhomass()
 */

  /* 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("CoolProp.CoolProp.State.get_rho", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_19get_rho(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_18get_rho[] = " Get the density [kg/m^3] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_19get_rho(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_rho (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_18get_rho(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_18get_rho(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_rho", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_rho(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 804, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_rho", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":809
 *     property rho:
 *         """ The density [kg/m^3] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.Props(iDmass)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_3rho_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_3rho_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_3rho___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_3rho___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":810
 *         """ The density [kg/m^3] """
 *         def __get__(self):
 *             return self.Props(iDmass)             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_p(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->Props(__pyx_v_self, CoolProp::iDmass, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 810, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":809
 *     property rho:
 *         """ The density [kg/m^3] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.Props(iDmass)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.rho.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":812
 *             return self.Props(iDmass)
 * 
 *     cpdef double get_p(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the pressure [kPa] """
 *         return self.pAS.p()/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_21get_p(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_p(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_p", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_21get_p)) {
        __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, 812, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 812, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":814
 *     cpdef double get_p(self) except *:
 *         """ Get the pressure [kPa] """
 *         return self.pAS.p()/1000             # <<<<<<<<<<<<<<
 *     property p:
 *         """ The pressure [kPa] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->p(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 814, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":812
 *             return self.Props(iDmass)
 * 
 *     cpdef double get_p(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the pressure [kPa] """
 *         return self.pAS.p()/1000
 */

  /* 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("CoolProp.CoolProp.State.get_p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_21get_p(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_20get_p[] = " Get the pressure [kPa] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_21get_p(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_p (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_20get_p(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_20get_p(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_p", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_p(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 812, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":817
 *     property p:
 *         """ The pressure [kPa] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_p()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1p_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1p_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_1p___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1p___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":818
 *         """ The pressure [kPa] """
 *         def __get__(self):
 *             return self.get_p()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_T(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_p(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 818, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":817
 *     property p:
 *         """ The pressure [kPa] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_p()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.p.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":820
 *             return self.get_p()
 * 
 *     cpdef double get_T(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the temperature [K] """
 *         return self.pAS.T()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_23get_T(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_T(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_T", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 820, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_23get_T)) {
        __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, 820, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 820, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":822
 *     cpdef double get_T(self) except *:
 *         """ Get the temperature [K] """
 *         return self.pAS.T()             # <<<<<<<<<<<<<<
 *     property T:
 *         """ The temperature [K] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->T(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 822, __pyx_L1_error)
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":820
 *             return self.get_p()
 * 
 *     cpdef double get_T(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the temperature [K] """
 *         return self.pAS.T()
 */

  /* 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("CoolProp.CoolProp.State.get_T", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_23get_T(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_22get_T[] = " Get the temperature [K] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_23get_T(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_T (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_22get_T(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_22get_T(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_T", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_T(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_T", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":825
 *     property T:
 *         """ The temperature [K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_T()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1T_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_1T___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1T___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":826
 *         """ The temperature [K] """
 *         def __get__(self):
 *             return self.get_T()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_h(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_T(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":825
 *     property T:
 *         """ The temperature [K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_T()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":828
 *             return self.get_T()
 * 
 *     cpdef double get_h(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific enthalpy [kJ/kg] """
 *         return self.pAS.hmass()/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_25get_h(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_h(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_h", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_h); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_25get_h)) {
        __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, 828, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 828, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":830
 *     cpdef double get_h(self) except *:
 *         """ Get the specific enthalpy [kJ/kg] """
 *         return self.pAS.hmass()/1000             # <<<<<<<<<<<<<<
 *     property h:
 *         """ The specific enthalpy [kJ/kg] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->hmass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":828
 *             return self.get_T()
 * 
 *     cpdef double get_h(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific enthalpy [kJ/kg] """
 *         return self.pAS.hmass()/1000
 */

  /* 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("CoolProp.CoolProp.State.get_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_25get_h(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_24get_h[] = " Get the specific enthalpy [kJ/kg] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_25get_h(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_h (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_24get_h(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_24get_h(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_h", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_h(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_h", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":833
 *     property h:
 *         """ The specific enthalpy [kJ/kg] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_h()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1h_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1h_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_1h___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1h___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":834
 *         """ The specific enthalpy [kJ/kg] """
 *         def __get__(self):
 *             return self.get_h()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_u(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_h(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":833
 *     property h:
 *         """ The specific enthalpy [kJ/kg] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_h()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.h.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":836
 *             return self.get_h()
 * 
 *     cpdef double get_u(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific internal energy [kJ/kg] """
 *         return self.pAS.umass()/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_27get_u(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_u(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_u", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_u); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_27get_u)) {
        __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, 836, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 836, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":838
 *     cpdef double get_u(self) except *:
 *         """ Get the specific internal energy [kJ/kg] """
 *         return self.pAS.umass()/1000             # <<<<<<<<<<<<<<
 *     property u:
 *         """ The internal energy [kJ/kg] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->umass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 838, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":836
 *             return self.get_h()
 * 
 *     cpdef double get_u(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific internal energy [kJ/kg] """
 *         return self.pAS.umass()/1000
 */

  /* 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("CoolProp.CoolProp.State.get_u", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_27get_u(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_26get_u[] = " Get the specific internal energy [kJ/kg] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_27get_u(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_u (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_26get_u(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_26get_u(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_u", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_u(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 836, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_u", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":841
 *     property u:
 *         """ The internal energy [kJ/kg] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_u()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1u_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1u_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_1u___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1u___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":842
 *         """ The internal energy [kJ/kg] """
 *         def __get__(self):
 *             return self.get_u()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_s(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_u(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":841
 *     property u:
 *         """ The internal energy [kJ/kg] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_u()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.u.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":844
 *             return self.get_u()
 * 
 *     cpdef double get_s(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific enthalpy [kJ/kg/K] """
 *         return self.pAS.smass()/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_29get_s(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_s(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_s", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_29get_s)) {
        __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, 844, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 844, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":846
 *     cpdef double get_s(self) except *:
 *         """ Get the specific enthalpy [kJ/kg/K] """
 *         return self.pAS.smass()/1000             # <<<<<<<<<<<<<<
 *     property s:
 *         """ The specific enthalpy [kJ/kg/K] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->smass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 846, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":844
 *             return self.get_u()
 * 
 *     cpdef double get_s(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific enthalpy [kJ/kg/K] """
 *         return self.pAS.smass()/1000
 */

  /* 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("CoolProp.CoolProp.State.get_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_29get_s(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_28get_s[] = " Get the specific enthalpy [kJ/kg/K] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_29get_s(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_s (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_28get_s(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_28get_s(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_s", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_s(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 844, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_s", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":849
 *     property s:
 *         """ The specific enthalpy [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_s()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1s_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1s_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_1s___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1s___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":850
 *         """ The specific enthalpy [kJ/kg/K] """
 *         def __get__(self):
 *             return self.get_s()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_cp0(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_s(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 850, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":849
 *     property s:
 *         """ The specific enthalpy [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_s()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.s.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":852
 *             return self.get_s()
 * 
 *     cpdef double get_cp0(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific heat at constant pressure for the ideal gas [kJ/kg/K] """
 *         return self.Props(iCp0mass)/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_31get_cp0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cp0(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_cp0", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_cp0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_31get_cp0)) {
        __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, 852, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 852, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":854
 *     cpdef double get_cp0(self) except *:
 *         """ Get the specific heat at constant pressure for the ideal gas [kJ/kg/K] """
 *         return self.Props(iCp0mass)/1000             # <<<<<<<<<<<<<<
 *     property cp0:
 *         """ The ideal-gas specific heat at constant pressure  [kJ/kg/K] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->Props(__pyx_v_self, CoolProp::iCp0mass, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":852
 *             return self.get_s()
 * 
 *     cpdef double get_cp0(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific heat at constant pressure for the ideal gas [kJ/kg/K] """
 *         return self.Props(iCp0mass)/1000
 */

  /* 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("CoolProp.CoolProp.State.get_cp0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_31get_cp0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_30get_cp0[] = " Get the specific heat at constant pressure for the ideal gas [kJ/kg/K] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_31get_cp0(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_cp0 (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_30get_cp0(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_30get_cp0(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_cp0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_cp0(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 852, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 852, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_cp0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":857
 *     property cp0:
 *         """ The ideal-gas specific heat at constant pressure  [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cp0()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_3cp0_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_3cp0_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_3cp0___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_3cp0___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":858
 *         """ The ideal-gas specific heat at constant pressure  [kJ/kg/K] """
 *         def __get__(self):
 *             return self.get_cp0()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_cp(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_cp0(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":857
 *     property cp0:
 *         """ The ideal-gas specific heat at constant pressure  [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cp0()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.cp0.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":860
 *             return self.get_cp0()
 * 
 *     cpdef double get_cp(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific heat at constant pressure  [kJ/kg/K] """
 *         return self.pAS.cpmass()/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_33get_cp(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cp(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_cp", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_cp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_33get_cp)) {
        __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, 860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 860, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":862
 *     cpdef double get_cp(self) except *:
 *         """ Get the specific heat at constant pressure  [kJ/kg/K] """
 *         return self.pAS.cpmass()/1000             # <<<<<<<<<<<<<<
 *     property cp:
 *         """ The specific heat at constant pressure  [kJ/kg/K] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->cpmass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 862, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":860
 *             return self.get_cp0()
 * 
 *     cpdef double get_cp(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific heat at constant pressure  [kJ/kg/K] """
 *         return self.pAS.cpmass()/1000
 */

  /* 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("CoolProp.CoolProp.State.get_cp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_33get_cp(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_32get_cp[] = " Get the specific heat at constant pressure  [kJ/kg/K] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_33get_cp(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_cp (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_32get_cp(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_32get_cp(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_cp", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_cp(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 860, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_cp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":865
 *     property cp:
 *         """ The specific heat at constant pressure  [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cp()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_2cp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_2cp_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_2cp___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2cp___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":866
 *         """ The specific heat at constant pressure  [kJ/kg/K] """
 *         def __get__(self):
 *             return self.get_cp()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_cv(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_cp(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 866, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":865
 *     property cp:
 *         """ The specific heat at constant pressure  [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cp()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.cp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":868
 *             return self.get_cp()
 * 
 *     cpdef double get_cv(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific heat at constant volume  [kJ/kg/K] """
 *         return self.pAS.cvmass()/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_35get_cv(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cv(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_cv", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_cv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_35get_cv)) {
        __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, 868, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":870
 *     cpdef double get_cv(self) except *:
 *         """ Get the specific heat at constant volume  [kJ/kg/K] """
 *         return self.pAS.cvmass()/1000             # <<<<<<<<<<<<<<
 *     property cv:
 *         """ The specific heat at constant volume  [kJ/kg/K] """
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->cvmass(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":868
 *             return self.get_cp()
 * 
 *     cpdef double get_cv(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the specific heat at constant volume  [kJ/kg/K] """
 *         return self.pAS.cvmass()/1000
 */

  /* 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("CoolProp.CoolProp.State.get_cv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_35get_cv(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_34get_cv[] = " Get the specific heat at constant volume  [kJ/kg/K] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_35get_cv(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_cv (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_34get_cv(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_34get_cv(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_cv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_cv(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_cv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":873
 *     property cv:
 *         """ The specific heat at constant volume  [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cv()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_2cv_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_2cv_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_2cv___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_2cv___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":874
 *         """ The specific heat at constant volume  [kJ/kg/K] """
 *         def __get__(self):
 *             return self.get_cv()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_speed_sound(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_cv(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":873
 *     property cv:
 *         """ The specific heat at constant volume  [kJ/kg/K] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cv()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.cv.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":876
 *             return self.get_cv()
 * 
 *     cpdef double get_speed_sound(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the speed of sound  [m/s] """
 *         return self.Props(ispeed_sound)
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_37get_speed_sound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_speed_sound", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_speed_sound); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_37get_speed_sound)) {
        __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, 876, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 876, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":878
 *     cpdef double get_speed_sound(self) except *:
 *         """ Get the speed of sound  [m/s] """
 *         return self.Props(ispeed_sound)             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_visc(self) except *:
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->Props(__pyx_v_self, CoolProp::ispeed_sound, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 878, __pyx_L1_error)
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":876
 *             return self.get_cv()
 * 
 *     cpdef double get_speed_sound(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the speed of sound  [m/s] """
 *         return self.Props(ispeed_sound)
 */

  /* 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("CoolProp.CoolProp.State.get_speed_sound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_37get_speed_sound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_36get_speed_sound[] = " Get the speed of sound  [m/s] ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_37get_speed_sound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_speed_sound (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_36get_speed_sound(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_36get_speed_sound(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_speed_sound", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_speed_sound(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 876, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_speed_sound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":880
 *         return self.Props(ispeed_sound)
 * 
 *     cpdef double get_visc(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the viscosity, in [Pa-s]"""
 *         return self.pAS.viscosity()
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_39get_visc(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_visc(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_visc", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_visc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_39get_visc)) {
        __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, 880, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 880, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":882
 *     cpdef double get_visc(self) except *:
 *         """ Get the viscosity, in [Pa-s]"""
 *         return self.pAS.viscosity()             # <<<<<<<<<<<<<<
 *     property visc:
 *         """ The viscosity, in [Pa-s]"""
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->viscosity(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 882, __pyx_L1_error)
  __pyx_r = __pyx_t_5;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":880
 *         return self.Props(ispeed_sound)
 * 
 *     cpdef double get_visc(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the viscosity, in [Pa-s]"""
 *         return self.pAS.viscosity()
 */

  /* 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("CoolProp.CoolProp.State.get_visc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_39get_visc(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_38get_visc[] = " Get the viscosity, in [Pa-s]";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_39get_visc(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_visc (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_38get_visc(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_38get_visc(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_visc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_visc(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 880, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_visc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":885
 *     property visc:
 *         """ The viscosity, in [Pa-s]"""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_visc()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_4visc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_4visc_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_4visc___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4visc___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":886
 *         """ The viscosity, in [Pa-s]"""
 *         def __get__(self):
 *             return self.get_visc()             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_cond(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_visc(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 886, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":885
 *     property visc:
 *         """ The viscosity, in [Pa-s]"""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_visc()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.visc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":888
 *             return self.get_visc()
 * 
 *     cpdef double get_cond(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the thermal conductivity, in [kW/m/K]"""
 *         return self.pAS.conductivity()/1000
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_41get_cond(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_cond(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("get_cond", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_cond); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 888, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_41get_cond)) {
        __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, 888, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 888, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":890
 *     cpdef double get_cond(self) except *:
 *         """ Get the thermal conductivity, in [kW/m/K]"""
 *         return self.pAS.conductivity()/1000             # <<<<<<<<<<<<<<
 *     property k:
 *         """ The thermal conductivity, in [kW/m/K]"""
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->conductivity(__pyx_v_self->pAS, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 890, __pyx_L1_error)
  __pyx_r = (__pyx_t_5 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":888
 *             return self.get_visc()
 * 
 *     cpdef double get_cond(self) except *:             # <<<<<<<<<<<<<<
 *         """ Get the thermal conductivity, in [kW/m/K]"""
 *         return self.pAS.conductivity()/1000
 */

  /* 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("CoolProp.CoolProp.State.get_cond", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_41get_cond(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_40get_cond[] = " Get the thermal conductivity, in [kW/m/K]";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_41get_cond(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_cond (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_40get_cond(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_40get_cond(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_cond", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_cond(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_cond", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":893
 *     property k:
 *         """ The thermal conductivity, in [kW/m/K]"""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cond()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1k_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_1k_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_1k___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_1k___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":894
 *         """ The thermal conductivity, in [kW/m/K]"""
 *         def __get__(self):
 *             return self.get_cond()             # <<<<<<<<<<<<<<
 * 
 *     cpdef get_Tsat(self, double Q = 1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_cond(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":893
 *     property k:
 *         """ The thermal conductivity, in [kW/m/K]"""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_cond()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.k.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":896
 *             return self.get_cond()
 * 
 *     cpdef get_Tsat(self, double Q = 1):             # <<<<<<<<<<<<<<
 *         """
 *         Get the saturation temperature, in [K]
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_43get_Tsat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_get_Tsat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat *__pyx_optional_args) {
  double __pyx_v_Q = ((double)1.0);
  struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_state = 0;
  double __pyx_v_pc;
  double __pyx_v_pt;
  PyObject *__pyx_r = NULL;
  __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;
  double __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  __Pyx_RefNannySetupContext("get_Tsat", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_Q = __pyx_optional_args->Q;
    }
  }
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_Tsat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 896, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_43get_Tsat)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Q); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 896, __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, 896, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":902
 *         Returns ``None`` if pressure is not within the two-phase pressure range
 *         """
 *         cdef State state = State(self.Fluid, None)             # <<<<<<<<<<<<<<
 *         cdef double pc = state.Props(iP_critical)
 *         cdef double pt
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self->Fluid);
  __Pyx_GIVEREF(__pyx_v_self->Fluid);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->Fluid);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_State), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_state = ((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":903
 *         """
 *         cdef State state = State(self.Fluid, None)
 *         cdef double pc = state.Props(iP_critical)             # <<<<<<<<<<<<<<
 *         cdef double pt
 *         try:
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_state->__pyx_vtab)->Props(__pyx_v_state, CoolProp::iP_critical, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L1_error)
  __pyx_v_pc = __pyx_t_6;

  /* "CoolProp/CoolProp.pyx":905
 *         cdef double pc = state.Props(iP_critical)
 *         cdef double pt
 *         try:             # <<<<<<<<<<<<<<
 *             pt = state.Props(iP_triple)
 *         except ValueError:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_9);
    /*try:*/ {

      /* "CoolProp/CoolProp.pyx":906
 *         cdef double pt
 *         try:
 *             pt = state.Props(iP_triple)             # <<<<<<<<<<<<<<
 *         except ValueError:
 *             pt = -1
 */
      __pyx_t_6 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_state->__pyx_vtab)->Props(__pyx_v_state, CoolProp::iP_triple, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 906, __pyx_L3_error)
      __pyx_v_pt = __pyx_t_6;

      /* "CoolProp/CoolProp.pyx":905
 *         cdef double pc = state.Props(iP_critical)
 *         cdef double pt
 *         try:             # <<<<<<<<<<<<<<
 *             pt = state.Props(iP_triple)
 *         except ValueError:
 */
    }
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "CoolProp/CoolProp.pyx":907
 *         try:
 *             pt = state.Props(iP_triple)
 *         except ValueError:             # <<<<<<<<<<<<<<
 *             pt = -1
 *         if _ValidNumber(pc) and _ValidNumber(pt):
 */
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError);
    if (__pyx_t_10) {
      __Pyx_AddTraceback("CoolProp.CoolProp.State.get_Tsat", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_4) < 0) __PYX_ERR(0, 907, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_4);

      /* "CoolProp/CoolProp.pyx":908
 *             pt = state.Props(iP_triple)
 *         except ValueError:
 *             pt = -1             # <<<<<<<<<<<<<<
 *         if _ValidNumber(pc) and _ValidNumber(pt):
 *             if self.p_ > 0.001*pc or self.p_ < 0.001*pt:
 */
      __pyx_v_pt = -1.0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "CoolProp/CoolProp.pyx":905
 *         cdef double pc = state.Props(iP_critical)
 *         cdef double pt
 *         try:             # <<<<<<<<<<<<<<
 *             pt = state.Props(iP_triple)
 *         except ValueError:
 */
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
    __pyx_L8_try_end:;
  }

  /* "CoolProp/CoolProp.pyx":909
 *         except ValueError:
 *             pt = -1
 *         if _ValidNumber(pc) and _ValidNumber(pt):             # <<<<<<<<<<<<<<
 *             if self.p_ > 0.001*pc or self.p_ < 0.001*pt:
 *                 return None
 */
  __pyx_t_12 = (ValidNumber(__pyx_v_pc) != 0);
  if (__pyx_t_12) {
  } else {
    __pyx_t_11 = __pyx_t_12;
    goto __pyx_L12_bool_binop_done;
  }
  __pyx_t_12 = (ValidNumber(__pyx_v_pt) != 0);
  __pyx_t_11 = __pyx_t_12;
  __pyx_L12_bool_binop_done:;
  if (__pyx_t_11) {

    /* "CoolProp/CoolProp.pyx":910
 *             pt = -1
 *         if _ValidNumber(pc) and _ValidNumber(pt):
 *             if self.p_ > 0.001*pc or self.p_ < 0.001*pt:             # <<<<<<<<<<<<<<
 *                 return None
 *             else:
 */
    __pyx_t_12 = ((__pyx_v_self->p_ > (0.001 * __pyx_v_pc)) != 0);
    if (!__pyx_t_12) {
    } else {
      __pyx_t_11 = __pyx_t_12;
      goto __pyx_L15_bool_binop_done;
    }
    __pyx_t_12 = ((__pyx_v_self->p_ < (0.001 * __pyx_v_pt)) != 0);
    __pyx_t_11 = __pyx_t_12;
    __pyx_L15_bool_binop_done:;
    if (__pyx_t_11) {

      /* "CoolProp/CoolProp.pyx":911
 *         if _ValidNumber(pc) and _ValidNumber(pt):
 *             if self.p_ > 0.001*pc or self.p_ < 0.001*pt:
 *                 return None             # <<<<<<<<<<<<<<
 *             else:
 *                 state.update(dict(P=self.p_,Q=Q))
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;

      /* "CoolProp/CoolProp.pyx":910
 *             pt = -1
 *         if _ValidNumber(pc) and _ValidNumber(pt):
 *             if self.p_ > 0.001*pc or self.p_ < 0.001*pt:             # <<<<<<<<<<<<<<
 *                 return None
 *             else:
 */
    }

    /* "CoolProp/CoolProp.pyx":913
 *                 return None
 *             else:
 *                 state.update(dict(P=self.p_,Q=Q))             # <<<<<<<<<<<<<<
 *                 return state.T
 *         else:
 */
    /*else*/ {
      __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 913, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->p_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_P, __pyx_t_1) < 0) __PYX_ERR(0, 913, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyFloat_FromDouble(__pyx_v_Q); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_Q, __pyx_t_1) < 0) __PYX_ERR(0, 913, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_state->__pyx_vtab)->update(__pyx_v_state, ((PyObject*)__pyx_t_4), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __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;

      /* "CoolProp/CoolProp.pyx":914
 *             else:
 *                 state.update(dict(P=self.p_,Q=Q))
 *                 return state.T             # <<<<<<<<<<<<<<
 *         else:
 *             state.update(dict(P=self.p_,Q=Q))
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_state), __pyx_n_s_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
    }

    /* "CoolProp/CoolProp.pyx":909
 *         except ValueError:
 *             pt = -1
 *         if _ValidNumber(pc) and _ValidNumber(pt):             # <<<<<<<<<<<<<<
 *             if self.p_ > 0.001*pc or self.p_ < 0.001*pt:
 *                 return None
 */
  }

  /* "CoolProp/CoolProp.pyx":916
 *                 return state.T
 *         else:
 *             state.update(dict(P=self.p_,Q=Q))             # <<<<<<<<<<<<<<
 *             return state.T
 *     property Tsat:
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->p_); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_P, __pyx_t_4) < 0) __PYX_ERR(0, 916, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_Q); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Q, __pyx_t_4) < 0) __PYX_ERR(0, 916, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_state->__pyx_vtab)->update(__pyx_v_state, ((PyObject*)__pyx_t_1), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 916, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "CoolProp/CoolProp.pyx":917
 *         else:
 *             state.update(dict(P=self.p_,Q=Q))
 *             return state.T             # <<<<<<<<<<<<<<
 *     property Tsat:
 *         """ The saturation temperature (dew) for the given pressure, in [K]"""
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_state), __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "CoolProp/CoolProp.pyx":896
 *             return self.get_cond()
 * 
 *     cpdef get_Tsat(self, double Q = 1):             # <<<<<<<<<<<<<<
 *         """
 *         Get the saturation temperature, in [K]
 */

  /* 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("CoolProp.CoolProp.State.get_Tsat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_state);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_43get_Tsat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_42get_Tsat[] = "\n        Get the saturation temperature, in [K]\n\n        Returns ``None`` if pressure is not within the two-phase pressure range\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_43get_Tsat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_Q;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_Tsat (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Q,0};
    PyObject* values[1] = {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  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_Q);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_Tsat") < 0)) __PYX_ERR(0, 896, __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;
      }
    }
    if (values[0]) {
      __pyx_v_Q = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_Q == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 896, __pyx_L3_error)
    } else {
      __pyx_v_Q = ((double)1.0);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_Tsat", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 896, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_Tsat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_42get_Tsat(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), __pyx_v_Q);

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_42get_Tsat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, double __pyx_v_Q) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat __pyx_t_2;
  __Pyx_RefNannySetupContext("get_Tsat", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.Q = __pyx_v_Q;
  __pyx_t_1 = __pyx_vtabptr_8CoolProp_8CoolProp_State->get_Tsat(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 896, __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("CoolProp.CoolProp.State.get_Tsat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":920
 *     property Tsat:
 *         """ The saturation temperature (dew) for the given pressure, in [K]"""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_Tsat(1.0)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_4Tsat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_4Tsat_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_4Tsat___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4Tsat___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat __pyx_t_2;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":921
 *         """ The saturation temperature (dew) for the given pressure, in [K]"""
 *         def __get__(self):
 *             return self.get_Tsat(1.0)             # <<<<<<<<<<<<<<
 * 
 *     cpdef get_superheat(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.Q = 1.0;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_Tsat(__pyx_v_self, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":920
 *     property Tsat:
 *         """ The saturation temperature (dew) for the given pressure, in [K]"""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_Tsat(1.0)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.Tsat.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":923
 *             return self.get_Tsat(1.0)
 * 
 *     cpdef get_superheat(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the amount of superheat above the saturation temperature corresponding to the pressure, in [K]
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_45get_superheat(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_get_superheat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_Tsat = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  __Pyx_RefNannySetupContext("get_superheat", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_superheat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 923, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_45get_superheat)) {
        __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, 923, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":930
 *         """
 * 
 *         Tsat = self.get_Tsat(1) #dewpoint temp             # <<<<<<<<<<<<<<
 * 
 *         if Tsat is not None:
 */
  __pyx_t_5.__pyx_n = 1;
  __pyx_t_5.Q = 1.0;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_Tsat(__pyx_v_self, 0, &__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_Tsat = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":932
 *         Tsat = self.get_Tsat(1) #dewpoint temp
 * 
 *         if Tsat is not None:             # <<<<<<<<<<<<<<
 *             return self.T_-Tsat
 *         else:
 */
  __pyx_t_6 = (__pyx_v_Tsat != Py_None);
  __pyx_t_7 = (__pyx_t_6 != 0);
  if (__pyx_t_7) {

    /* "CoolProp/CoolProp.pyx":933
 * 
 *         if Tsat is not None:
 *             return self.T_-Tsat             # <<<<<<<<<<<<<<
 *         else:
 *             return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->T_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 933, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_v_Tsat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 933, __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;

    /* "CoolProp/CoolProp.pyx":932
 *         Tsat = self.get_Tsat(1) #dewpoint temp
 * 
 *         if Tsat is not None:             # <<<<<<<<<<<<<<
 *             return self.T_-Tsat
 *         else:
 */
  }

  /* "CoolProp/CoolProp.pyx":935
 *             return self.T_-Tsat
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 *     property superheat:
 *         """
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "CoolProp/CoolProp.pyx":923
 *             return self.get_Tsat(1.0)
 * 
 *     cpdef get_superheat(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the amount of superheat above the saturation temperature corresponding to the pressure, in [K]
 */

  /* 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("CoolProp.CoolProp.State.get_superheat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_Tsat);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_45get_superheat(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_44get_superheat[] = "\n        Get the amount of superheat above the saturation temperature corresponding to the pressure, in [K]\n\n        Returns ``None`` if pressure is not within the two-phase pressure range\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_45get_superheat(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_superheat (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_44get_superheat(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_44get_superheat(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_superheat", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_superheat(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 923, __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("CoolProp.CoolProp.State.get_superheat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":942
 *         Returns ``None`` if pressure is not within the two-phase pressure range
 *         """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_superheat()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_9superheat_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_9superheat_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_9superheat___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_9superheat___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":943
 *         """
 *         def __get__(self):
 *             return self.get_superheat()             # <<<<<<<<<<<<<<
 * 
 *     cpdef get_subcooling(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_superheat(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":942
 *         Returns ``None`` if pressure is not within the two-phase pressure range
 *         """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_superheat()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.superheat.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":945
 *             return self.get_superheat()
 * 
 *     cpdef get_subcooling(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the amount of subcooling below the saturation temperature corresponding to the pressure, in [K]
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_47get_subcooling(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_get_subcooling(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_Tsat = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  __Pyx_RefNannySetupContext("get_subcooling", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_subcooling); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_47get_subcooling)) {
        __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, 945, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":952
 *         """
 * 
 *         Tsat = self.get_Tsat(0) #bubblepoint temp             # <<<<<<<<<<<<<<
 * 
 *         if Tsat is not None:
 */
  __pyx_t_5.__pyx_n = 1;
  __pyx_t_5.Q = 0.0;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_Tsat(__pyx_v_self, 0, &__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_Tsat = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":954
 *         Tsat = self.get_Tsat(0) #bubblepoint temp
 * 
 *         if Tsat is not None:             # <<<<<<<<<<<<<<
 *             return Tsat - self.T_
 *         else:
 */
  __pyx_t_6 = (__pyx_v_Tsat != Py_None);
  __pyx_t_7 = (__pyx_t_6 != 0);
  if (__pyx_t_7) {

    /* "CoolProp/CoolProp.pyx":955
 * 
 *         if Tsat is not None:
 *             return Tsat - self.T_             # <<<<<<<<<<<<<<
 *         else:
 *             return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->T_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_Tsat, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 955, __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;

    /* "CoolProp/CoolProp.pyx":954
 *         Tsat = self.get_Tsat(0) #bubblepoint temp
 * 
 *         if Tsat is not None:             # <<<<<<<<<<<<<<
 *             return Tsat - self.T_
 *         else:
 */
  }

  /* "CoolProp/CoolProp.pyx":957
 *             return Tsat - self.T_
 *         else:
 *             return None             # <<<<<<<<<<<<<<
 *     property subcooling:
 *         """
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "CoolProp/CoolProp.pyx":945
 *             return self.get_superheat()
 * 
 *     cpdef get_subcooling(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the amount of subcooling below the saturation temperature corresponding to the pressure, in [K]
 */

  /* 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("CoolProp.CoolProp.State.get_subcooling", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_Tsat);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_47get_subcooling(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_46get_subcooling[] = "\n        Get the amount of subcooling below the saturation temperature corresponding to the pressure, in [K]\n\n        Returns ``None`` if pressure is not within the two-phase pressure range\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_47get_subcooling(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_subcooling (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_46get_subcooling(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_46get_subcooling(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_subcooling", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_subcooling(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __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("CoolProp.CoolProp.State.get_subcooling", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":964
 *         Returns ``None`` if pressure is not within the two-phase pressure range
 *         """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_subcooling()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_10subcooling_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_10subcooling_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_10subcooling___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_10subcooling___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":965
 *         """
 *         def __get__(self):
 *             return self.get_subcooling()             # <<<<<<<<<<<<<<
 * 
 *     property Prandtl:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_subcooling(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":964
 *         Returns ``None`` if pressure is not within the two-phase pressure range
 *         """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_subcooling()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.subcooling.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":969
 *     property Prandtl:
 *         """ The Prandtl number (cp*mu/k) [-] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.cp * self.visc / self.k
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_7Prandtl_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_7Prandtl_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_7Prandtl___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_7Prandtl___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":970
 *         """ The Prandtl number (cp*mu/k) [-] """
 *         def __get__(self):
 *             return self.cp * self.visc / self.k             # <<<<<<<<<<<<<<
 * 
 *     cpdef double get_dpdT(self) except *:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_visc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 970, __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_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_k); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":969
 *     property Prandtl:
 *         """ The Prandtl number (cp*mu/k) [-] """
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.cp * self.visc / self.k
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.Prandtl.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":972
 *             return self.cp * self.visc / self.k
 * 
 *     cpdef double get_dpdT(self) except *:             # <<<<<<<<<<<<<<
 *         return self.pAS.first_partial_deriv(iP, iT, iDmolar)/1000;
 *     property dpdT:
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_49get_dpdT(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_8CoolProp_8CoolProp_5State_get_dpdT(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __pyx_t_8CoolProp_8typedefs_CoolPropDbl __pyx_t_6;
  __Pyx_RefNannySetupContext("get_dpdT", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_dpdT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 972, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_49get_dpdT)) {
        __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, 972, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":973
 * 
 *     cpdef double get_dpdT(self) except *:
 *         return self.pAS.first_partial_deriv(iP, iT, iDmolar)/1000;             # <<<<<<<<<<<<<<
 *     property dpdT:
 *         def __get__(self):
 */
  __pyx_t_6 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->first_partial_deriv(__pyx_v_self->pAS, CoolProp::iP, CoolProp::iT, CoolProp::iDmolar, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L1_error)
  __pyx_r = (__pyx_t_6 / 1000.0);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":972
 *             return self.cp * self.visc / self.k
 * 
 *     cpdef double get_dpdT(self) except *:             # <<<<<<<<<<<<<<
 *         return self.pAS.first_partial_deriv(iP, iT, iDmolar)/1000;
 *     property dpdT:
 */

  /* 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("CoolProp.CoolProp.State.get_dpdT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_49get_dpdT(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_49get_dpdT(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_dpdT (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_48get_dpdT(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_48get_dpdT(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("get_dpdT", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_get_dpdT(__pyx_v_self, 1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.get_dpdT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":975
 *         return self.pAS.first_partial_deriv(iP, iT, iDmolar)/1000;
 *     property dpdT:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_dpdT()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_4dpdT_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_4dpdT_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_4dpdT___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_4dpdT___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "CoolProp/CoolProp.pyx":976
 *     property dpdT:
 *         def __get__(self):
 *             return self.get_dpdT()             # <<<<<<<<<<<<<<
 * 
 *     cpdef speed_test(self, int N):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_State *)__pyx_v_self->__pyx_vtab)->get_dpdT(__pyx_v_self, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 976, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":975
 *         return self.pAS.first_partial_deriv(iP, iT, iDmolar)/1000;
 *     property dpdT:
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.get_dpdT()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.dpdT.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":978
 *             return self.get_dpdT()
 * 
 *     cpdef speed_test(self, int N):             # <<<<<<<<<<<<<<
 *         from time import clock
 *         cdef int i
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_51speed_test(PyObject *__pyx_v_self, PyObject *__pyx_arg_N); /*proto*/
static PyObject *__pyx_f_8CoolProp_8CoolProp_5State_speed_test(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_v_N, int __pyx_skip_dispatch) {
  PyObject *__pyx_v_clock = NULL;
  CYTHON_UNUSED int __pyx_v_i;
  PyObject *__pyx_v_Fluid = 0;
  CYTHON_UNUSED long __pyx_v_IT;
  CYTHON_UNUSED long __pyx_v_ID;
  PyObject *__pyx_v_CP = NULL;
  PyObject *__pyx_v_keys = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_t1 = NULL;
  PyObject *__pyx_v_t2 = NULL;
  PyObject *__pyx_r = NULL;
  __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;
  Py_ssize_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  std::string __pyx_t_13;
  std::string __pyx_t_14;
  std::string __pyx_t_15;
  std::string __pyx_t_16;
  CoolProp::parameters __pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  __Pyx_RefNannySetupContext("speed_test", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_speed_test); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_51speed_test)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __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, 978, __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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":979
 * 
 *     cpdef speed_test(self, int N):
 *         from time import clock             # <<<<<<<<<<<<<<
 *         cdef int i
 *         cdef char * k
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_clock);
  __Pyx_GIVEREF(__pyx_n_s_clock);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_clock);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_time, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 979, __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_clock); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_clock = __pyx_t_1;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":983
 *         cdef char * k
 *         cdef long ikey
 *         cdef bytes Fluid = self.Fluid             # <<<<<<<<<<<<<<
 *         cdef long IT = 'T'
 *         cdef long ID = 'D'
 */
  __pyx_t_2 = __pyx_v_self->Fluid;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_Fluid = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":984
 *         cdef long ikey
 *         cdef bytes Fluid = self.Fluid
 *         cdef long IT = 'T'             # <<<<<<<<<<<<<<
 *         cdef long ID = 'D'
 *         import CoolProp as CP
 */
  __pyx_v_IT = 'T';

  /* "CoolProp/CoolProp.pyx":985
 *         cdef bytes Fluid = self.Fluid
 *         cdef long IT = 'T'
 *         cdef long ID = 'D'             # <<<<<<<<<<<<<<
 *         import CoolProp as CP
 * 
 */
  __pyx_v_ID = 'D';

  /* "CoolProp/CoolProp.pyx":986
 *         cdef long IT = 'T'
 *         cdef long ID = 'D'
 *         import CoolProp as CP             # <<<<<<<<<<<<<<
 * 
 *         print 'Call to the Python call layer (CoolProp.CoolProp.Props)'
 */
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_CoolProp, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_CP = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":988
 *         import CoolProp as CP
 * 
 *         print 'Call to the Python call layer (CoolProp.CoolProp.Props)'             # <<<<<<<<<<<<<<
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','d(P)/d(T)|Dmolar']
 */
  if (__Pyx_PrintOne(0, __pyx_kp_s_Call_to_the_Python_call_layer_Co) < 0) __PYX_ERR(0, 988, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":989
 * 
 *         print 'Call to the Python call layer (CoolProp.CoolProp.Props)'
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"             # <<<<<<<<<<<<<<
 *         keys = ['H','P','S','U','C','O','V','L','M','d(P)/d(T)|Dmolar']
 *         for key in keys:
 */
  if (__Pyx_PrintOne(0, __pyx_kp_s_M_involves_basically_no_computa) < 0) __PYX_ERR(0, 989, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":990
 *         print 'Call to the Python call layer (CoolProp.CoolProp.Props)'
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','d(P)/d(T)|Dmolar']             # <<<<<<<<<<<<<<
 *         for key in keys:
 *             t1=clock()
 */
  __pyx_t_2 = PyList_New(10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_H);
  __Pyx_GIVEREF(__pyx_n_s_H);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_H);
  __Pyx_INCREF(__pyx_n_s_P);
  __Pyx_GIVEREF(__pyx_n_s_P);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_P);
  __Pyx_INCREF(__pyx_n_s_S);
  __Pyx_GIVEREF(__pyx_n_s_S);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_S);
  __Pyx_INCREF(__pyx_n_s_U);
  __Pyx_GIVEREF(__pyx_n_s_U);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_U);
  __Pyx_INCREF(__pyx_n_s_C);
  __Pyx_GIVEREF(__pyx_n_s_C);
  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_C);
  __Pyx_INCREF(__pyx_n_s_O);
  __Pyx_GIVEREF(__pyx_n_s_O);
  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_O);
  __Pyx_INCREF(__pyx_n_s_V);
  __Pyx_GIVEREF(__pyx_n_s_V);
  PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_V);
  __Pyx_INCREF(__pyx_n_s_L);
  __Pyx_GIVEREF(__pyx_n_s_L);
  PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_L);
  __Pyx_INCREF(__pyx_n_s_M);
  __Pyx_GIVEREF(__pyx_n_s_M);
  PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_M);
  __Pyx_INCREF(__pyx_kp_s_d_P_d_T_Dmolar);
  __Pyx_GIVEREF(__pyx_kp_s_d_P_d_T_Dmolar);
  PyList_SET_ITEM(__pyx_t_2, 9, __pyx_kp_s_d_P_d_T_Dmolar);
  __pyx_v_keys = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":991
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','d(P)/d(T)|Dmolar']
 *         for key in keys:             # <<<<<<<<<<<<<<
 *             t1=clock()
 *             for i in range(N):
 */
  __pyx_t_2 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":992
 *         keys = ['H','P','S','U','C','O','V','L','M','d(P)/d(T)|Dmolar']
 *         for key in keys:
 *             t1=clock()             # <<<<<<<<<<<<<<
 *             for i in range(N):
 *                 CP.PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 */
    __Pyx_INCREF(__pyx_v_clock);
    __pyx_t_4 = __pyx_v_clock; __pyx_t_3 = NULL;
    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_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 992, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_t1, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":993
 *         for key in keys:
 *             t1=clock()
 *             for i in range(N):             # <<<<<<<<<<<<<<
 *                 CP.PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 *             t2=clock()
 */
    __pyx_t_7 = __pyx_v_N;
    __pyx_t_8 = __pyx_t_7;
    for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
      __pyx_v_i = __pyx_t_9;

      /* "CoolProp/CoolProp.pyx":994
 *             t1=clock()
 *             for i in range(N):
 *                 CP.PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)             # <<<<<<<<<<<<<<
 *             t2=clock()
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_CP, __pyx_n_s_PropsSI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->T_); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->rho_); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_10);
          __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[7] = {__pyx_t_10, __pyx_v_key, __pyx_n_s_T, __pyx_t_3, __pyx_n_s_D, __pyx_t_5, __pyx_v_Fluid};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_11, 6+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[7] = {__pyx_t_10, __pyx_v_key, __pyx_n_s_T, __pyx_t_3, __pyx_n_s_D, __pyx_t_5, __pyx_v_Fluid};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_11, 6+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      {
        __pyx_t_12 = PyTuple_New(6+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 994, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        if (__pyx_t_10) {
          __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL;
        }
        __Pyx_INCREF(__pyx_v_key);
        __Pyx_GIVEREF(__pyx_v_key);
        PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_v_key);
        __Pyx_INCREF(__pyx_n_s_T);
        __Pyx_GIVEREF(__pyx_n_s_T);
        PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_n_s_T);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_3);
        __Pyx_INCREF(__pyx_n_s_D);
        __Pyx_GIVEREF(__pyx_n_s_D);
        PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_11, __pyx_n_s_D);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_11, __pyx_t_5);
        __Pyx_INCREF(__pyx_v_Fluid);
        __Pyx_GIVEREF(__pyx_v_Fluid);
        PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_11, __pyx_v_Fluid);
        __pyx_t_3 = 0;
        __pyx_t_5 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }

    /* "CoolProp/CoolProp.pyx":995
 *             for i in range(N):
 *                 CP.PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 *             t2=clock()             # <<<<<<<<<<<<<<
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)
 * 
 */
    __Pyx_INCREF(__pyx_v_clock);
    __pyx_t_4 = __pyx_v_clock; __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 995, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_t2, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":996
 *                 CP.PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 *             t2=clock()
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)             # <<<<<<<<<<<<<<
 * 
 *         print 'Direct c++ call to CoolProp without the Python call layer (_Props function)'
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Elapsed_time_for_0_d_calls_for_1, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_5 = PyNumber_Subtract(__pyx_v_t2, __pyx_v_t1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_10, __pyx_float_1e6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_10);
        __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[4] = {__pyx_t_10, __pyx_t_12, __pyx_v_key, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __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[4] = {__pyx_t_10, __pyx_t_12, __pyx_v_key, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 996, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_10) {
        __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_10); __pyx_t_10 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_12);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_t_12);
      __Pyx_INCREF(__pyx_v_key);
      __Pyx_GIVEREF(__pyx_v_key);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_v_key);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_7, __pyx_t_3);
      __pyx_t_12 = 0;
      __pyx_t_3 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __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;
    if (__Pyx_PrintOne(0, __pyx_t_1) < 0) __PYX_ERR(0, 996, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":991
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','d(P)/d(T)|Dmolar']
 *         for key in keys:             # <<<<<<<<<<<<<<
 *             t1=clock()
 *             for i in range(N):
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":998
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)
 * 
 *         print 'Direct c++ call to CoolProp without the Python call layer (_Props function)'             # <<<<<<<<<<<<<<
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','C0','d(P)/d(T)|Dmolar']
 */
  if (__Pyx_PrintOne(0, __pyx_kp_s_Direct_c_call_to_CoolProp_withou) < 0) __PYX_ERR(0, 998, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":999
 * 
 *         print 'Direct c++ call to CoolProp without the Python call layer (_Props function)'
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"             # <<<<<<<<<<<<<<
 *         keys = ['H','P','S','U','C','O','V','L','M','C0','d(P)/d(T)|Dmolar']
 *         for key in keys:
 */
  if (__Pyx_PrintOne(0, __pyx_kp_s_M_involves_basically_no_computa) < 0) __PYX_ERR(0, 999, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":1000
 *         print 'Direct c++ call to CoolProp without the Python call layer (_Props function)'
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','C0','d(P)/d(T)|Dmolar']             # <<<<<<<<<<<<<<
 *         for key in keys:
 *             t1=clock()
 */
  __pyx_t_2 = PyList_New(11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_H);
  __Pyx_GIVEREF(__pyx_n_s_H);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_H);
  __Pyx_INCREF(__pyx_n_s_P);
  __Pyx_GIVEREF(__pyx_n_s_P);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_P);
  __Pyx_INCREF(__pyx_n_s_S);
  __Pyx_GIVEREF(__pyx_n_s_S);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_S);
  __Pyx_INCREF(__pyx_n_s_U);
  __Pyx_GIVEREF(__pyx_n_s_U);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_U);
  __Pyx_INCREF(__pyx_n_s_C);
  __Pyx_GIVEREF(__pyx_n_s_C);
  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_C);
  __Pyx_INCREF(__pyx_n_s_O);
  __Pyx_GIVEREF(__pyx_n_s_O);
  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_O);
  __Pyx_INCREF(__pyx_n_s_V);
  __Pyx_GIVEREF(__pyx_n_s_V);
  PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_V);
  __Pyx_INCREF(__pyx_n_s_L);
  __Pyx_GIVEREF(__pyx_n_s_L);
  PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_L);
  __Pyx_INCREF(__pyx_n_s_M);
  __Pyx_GIVEREF(__pyx_n_s_M);
  PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_M);
  __Pyx_INCREF(__pyx_n_s_C0);
  __Pyx_GIVEREF(__pyx_n_s_C0);
  PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_C0);
  __Pyx_INCREF(__pyx_kp_s_d_P_d_T_Dmolar);
  __Pyx_GIVEREF(__pyx_kp_s_d_P_d_T_Dmolar);
  PyList_SET_ITEM(__pyx_t_2, 10, __pyx_kp_s_d_P_d_T_Dmolar);
  __Pyx_DECREF_SET(__pyx_v_keys, ((PyObject*)__pyx_t_2));
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":1001
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','C0','d(P)/d(T)|Dmolar']
 *         for key in keys:             # <<<<<<<<<<<<<<
 *             t1=clock()
 *             for i in range(N):
 */
  __pyx_t_2 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1001, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1001, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":1002
 *         keys = ['H','P','S','U','C','O','V','L','M','C0','d(P)/d(T)|Dmolar']
 *         for key in keys:
 *             t1=clock()             # <<<<<<<<<<<<<<
 *             for i in range(N):
 *                 _PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 */
    __Pyx_INCREF(__pyx_v_clock);
    __pyx_t_4 = __pyx_v_clock; __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_1 = (__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_1)) __PYX_ERR(0, 1002, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_t1, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":1003
 *         for key in keys:
 *             t1=clock()
 *             for i in range(N):             # <<<<<<<<<<<<<<
 *                 _PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 *             t2=clock()
 */
    __pyx_t_7 = __pyx_v_N;
    __pyx_t_8 = __pyx_t_7;
    for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
      __pyx_v_i = __pyx_t_9;

      /* "CoolProp/CoolProp.pyx":1004
 *             t1=clock()
 *             for i in range(N):
 *                 _PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)             # <<<<<<<<<<<<<<
 *             t2=clock()
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)
 */
      __pyx_t_13 = __pyx_convert_string_from_py_std__in_string(__pyx_v_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1004, __pyx_L1_error)
      __pyx_t_14 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_T); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1004, __pyx_L1_error)
      __pyx_t_15 = __pyx_convert_string_from_py_std__in_string(__pyx_n_b_D); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1004, __pyx_L1_error)
      __pyx_t_16 = __pyx_convert_string_from_py_std__in_string(__pyx_v_Fluid); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1004, __pyx_L1_error)
      (void)(CoolProp::PropsSI(__pyx_t_13, __pyx_t_14, __pyx_v_self->T_, __pyx_t_15, __pyx_v_self->rho_, __pyx_t_16));
    }

    /* "CoolProp/CoolProp.pyx":1005
 *             for i in range(N):
 *                 _PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 *             t2=clock()             # <<<<<<<<<<<<<<
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)
 * 
 */
    __Pyx_INCREF(__pyx_v_clock);
    __pyx_t_4 = __pyx_v_clock; __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_1 = (__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_1)) __PYX_ERR(0, 1005, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_t2, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":1006
 *                 _PropsSI(key,'T',self.T_,'D',self.rho_,Fluid)
 *             t2=clock()
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)             # <<<<<<<<<<<<<<
 * 
 *         print 'Call to the c++ layer using integers'
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Elapsed_time_for_0_d_calls_for_1, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyNumber_Subtract(__pyx_v_t2, __pyx_v_t1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_10 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = PyNumber_Multiply(__pyx_t_10, __pyx_float_1e6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_10);
        __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[4] = {__pyx_t_10, __pyx_t_5, __pyx_v_key, __pyx_t_12};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1006, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_t_5, __pyx_v_key, __pyx_t_12};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1006, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1006, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (__pyx_t_10) {
        __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10); __pyx_t_10 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_7, __pyx_t_5);
      __Pyx_INCREF(__pyx_v_key);
      __Pyx_GIVEREF(__pyx_v_key);
      PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_7, __pyx_v_key);
      __Pyx_GIVEREF(__pyx_t_12);
      PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_7, __pyx_t_12);
      __pyx_t_5 = 0;
      __pyx_t_12 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1006, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__Pyx_PrintOne(0, __pyx_t_1) < 0) __PYX_ERR(0, 1006, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":1001
 *         print "'M' involves basically no computational effort and is a good measure of the function call overhead"
 *         keys = ['H','P','S','U','C','O','V','L','M','C0','d(P)/d(T)|Dmolar']
 *         for key in keys:             # <<<<<<<<<<<<<<
 *             t1=clock()
 *             for i in range(N):
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":1008
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,key,(t2-t1)/N*1e6)
 * 
 *         print 'Call to the c++ layer using integers'             # <<<<<<<<<<<<<<
 *         keys = [iHmass, iP,iSmass,iUmass]
 *         for key in keys:
 */
  if (__Pyx_PrintOne(0, __pyx_kp_s_Call_to_the_c_layer_using_intege) < 0) __PYX_ERR(0, 1008, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":1009
 * 
 *         print 'Call to the c++ layer using integers'
 *         keys = [iHmass, iP,iSmass,iUmass]             # <<<<<<<<<<<<<<
 *         for key in keys:
 *             t1=clock()
 */
  __pyx_t_2 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iHmass); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iSmass); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iUmass); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = PyList_New(4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_12, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_12, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_12, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_12, 3, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  __Pyx_DECREF_SET(__pyx_v_keys, ((PyObject*)__pyx_t_12));
  __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":1010
 *         print 'Call to the c++ layer using integers'
 *         keys = [iHmass, iP,iSmass,iUmass]
 *         for key in keys:             # <<<<<<<<<<<<<<
 *             t1=clock()
 *             for i in range(N):
 */
  __pyx_t_12 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1010, __pyx_L1_error)
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1010, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":1011
 *         keys = [iHmass, iP,iSmass,iUmass]
 *         for key in keys:
 *             t1=clock()             # <<<<<<<<<<<<<<
 *             for i in range(N):
 *                 self.pAS.update(DmassT_INPUTS,self.rho_,self.T_)
 */
    __Pyx_INCREF(__pyx_v_clock);
    __pyx_t_4 = __pyx_v_clock; __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_t1, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":1012
 *         for key in keys:
 *             t1=clock()
 *             for i in range(N):             # <<<<<<<<<<<<<<
 *                 self.pAS.update(DmassT_INPUTS,self.rho_,self.T_)
 *                 self.pAS.keyed_output(key)
 */
    __pyx_t_7 = __pyx_v_N;
    __pyx_t_8 = __pyx_t_7;
    for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
      __pyx_v_i = __pyx_t_9;

      /* "CoolProp/CoolProp.pyx":1013
 *             t1=clock()
 *             for i in range(N):
 *                 self.pAS.update(DmassT_INPUTS,self.rho_,self.T_)             # <<<<<<<<<<<<<<
 *                 self.pAS.keyed_output(key)
 *             t2=clock()
 */
      __pyx_t_3 = ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->update(__pyx_v_self->pAS, CoolProp::DmassT_INPUTS, __pyx_v_self->rho_, __pyx_v_self->T_, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "CoolProp/CoolProp.pyx":1014
 *             for i in range(N):
 *                 self.pAS.update(DmassT_INPUTS,self.rho_,self.T_)
 *                 self.pAS.keyed_output(key)             # <<<<<<<<<<<<<<
 *             t2=clock()
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,paras[key],(t2-t1)/N*1e6)
 */
      __pyx_t_17 = ((CoolProp::parameters)__Pyx_PyInt_As_CoolProp_3a__3a_parameters(__pyx_v_key)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1014, __pyx_L1_error)
      ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->keyed_output(__pyx_v_self->pAS, __pyx_t_17, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1014, __pyx_L1_error)
    }

    /* "CoolProp/CoolProp.pyx":1015
 *                 self.pAS.update(DmassT_INPUTS,self.rho_,self.T_)
 *                 self.pAS.keyed_output(key)
 *             t2=clock()             # <<<<<<<<<<<<<<
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,paras[key],(t2-t1)/N*1e6)
 * 
 */
    __Pyx_INCREF(__pyx_v_clock);
    __pyx_t_4 = __pyx_v_clock; __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1015, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_t2, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":1016
 *                 self.pAS.keyed_output(key)
 *             t2=clock()
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,paras[key],(t2-t1)/N*1e6)             # <<<<<<<<<<<<<<
 * 
 *         print 'Call to the AbstractState for molar mass (fast)'
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Elapsed_time_for_0_d_calls_for_1, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(__pyx_v_8CoolProp_8CoolProp_paras == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 1016, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_8CoolProp_8CoolProp_paras, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyNumber_Subtract(__pyx_v_t2, __pyx_v_t1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_18 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyNumber_Multiply(__pyx_t_18, __pyx_float_1e6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_18 = NULL;
    __pyx_t_7 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_18)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_18);
        __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[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_2, __pyx_t_10};
      __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1016, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_2, __pyx_t_10};
      __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1016, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_18) {
        __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_18); __pyx_t_18 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_10);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_7, __pyx_t_10);
      __pyx_t_1 = 0;
      __pyx_t_2 = 0;
      __pyx_t_10 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__Pyx_PrintOne(0, __pyx_t_3) < 0) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":1010
 *         print 'Call to the c++ layer using integers'
 *         keys = [iHmass, iP,iSmass,iUmass]
 *         for key in keys:             # <<<<<<<<<<<<<<
 *             t1=clock()
 *             for i in range(N):
 */
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":1018
 *             print 'Elapsed time for {0:d} calls for "{1:s}" at {2:g} us/call'.format(N,paras[key],(t2-t1)/N*1e6)
 * 
 *         print 'Call to the AbstractState for molar mass (fast)'             # <<<<<<<<<<<<<<
 *         t1=clock()
 *         for i in range(N):
 */
  if (__Pyx_PrintOne(0, __pyx_kp_s_Call_to_the_AbstractState_for_mo) < 0) __PYX_ERR(0, 1018, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":1019
 * 
 *         print 'Call to the AbstractState for molar mass (fast)'
 *         t1=clock()             # <<<<<<<<<<<<<<
 *         for i in range(N):
 *             self.pAS.keyed_output(imolar_mass)
 */
  __Pyx_INCREF(__pyx_v_clock);
  __pyx_t_3 = __pyx_v_clock; __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_12 = (__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_12)) __PYX_ERR(0, 1019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_XDECREF_SET(__pyx_v_t1, __pyx_t_12);
  __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":1020
 *         print 'Call to the AbstractState for molar mass (fast)'
 *         t1=clock()
 *         for i in range(N):             # <<<<<<<<<<<<<<
 *             self.pAS.keyed_output(imolar_mass)
 *         t2=clock()
 */
  __pyx_t_7 = __pyx_v_N;
  __pyx_t_8 = __pyx_t_7;
  for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
    __pyx_v_i = __pyx_t_9;

    /* "CoolProp/CoolProp.pyx":1021
 *         t1=clock()
 *         for i in range(N):
 *             self.pAS.keyed_output(imolar_mass)             # <<<<<<<<<<<<<<
 *         t2=clock()
 *         print 'Elapsed time for {0:d} calls at {1:g} us/call'.format(N, (t2-t1)/N*1e6)
 */
    ((struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState *)__pyx_v_self->pAS->__pyx_vtab)->keyed_output(__pyx_v_self->pAS, CoolProp::imolar_mass, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1021, __pyx_L1_error)
  }

  /* "CoolProp/CoolProp.pyx":1022
 *         for i in range(N):
 *             self.pAS.keyed_output(imolar_mass)
 *         t2=clock()             # <<<<<<<<<<<<<<
 *         print 'Elapsed time for {0:d} calls at {1:g} us/call'.format(N, (t2-t1)/N*1e6)
 * 
 */
  __Pyx_INCREF(__pyx_v_clock);
  __pyx_t_3 = __pyx_v_clock; __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_12 = (__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_12)) __PYX_ERR(0, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_XDECREF_SET(__pyx_v_t2, __pyx_t_12);
  __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":1023
 *             self.pAS.keyed_output(imolar_mass)
 *         t2=clock()
 *         print 'Elapsed time for {0:d} calls at {1:g} us/call'.format(N, (t2-t1)/N*1e6)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Elapsed_time_for_0_d_calls_at_1, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyNumber_Subtract(__pyx_v_t2, __pyx_v_t1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_N); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_Multiply(__pyx_t_2, __pyx_float_1e6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_7 = 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_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_10};
    __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1023, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_10};
    __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1023, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1023, __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_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_10);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_t_10);
    __pyx_t_4 = 0;
    __pyx_t_10 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1023, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PrintOne(0, __pyx_t_12) < 0) __PYX_ERR(0, 1023, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":978
 *             return self.get_dpdT()
 * 
 *     cpdef speed_test(self, int N):             # <<<<<<<<<<<<<<
 *         from time import clock
 *         cdef int i
 */

  /* 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_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.speed_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_clock);
  __Pyx_XDECREF(__pyx_v_Fluid);
  __Pyx_XDECREF(__pyx_v_CP);
  __Pyx_XDECREF(__pyx_v_keys);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_t1);
  __Pyx_XDECREF(__pyx_v_t2);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_51speed_test(PyObject *__pyx_v_self, PyObject *__pyx_arg_N); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_51speed_test(PyObject *__pyx_v_self, PyObject *__pyx_arg_N) {
  int __pyx_v_N;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("speed_test (wrapper)", 0);
  assert(__pyx_arg_N); {
    __pyx_v_N = __Pyx_PyInt_As_int(__pyx_arg_N); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 978, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.State.speed_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_50speed_test(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), ((int)__pyx_v_N));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_50speed_test(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_v_N) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("speed_test", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp_5State_speed_test(__pyx_v_self, __pyx_v_N, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 978, __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("CoolProp.CoolProp.State.speed_test", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":1060
 * #             _disable_TTSE_LUT(<bytes>Fluid)
 * #
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return a string representation of the state
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_53__str__(PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_52__str__[] = "\n        Return a string representation of the state\n        ";
#if CYTHON_COMPILING_IN_CPYTHON
struct wrapperbase __pyx_wrapperbase_8CoolProp_8CoolProp_5State_52__str__;
#endif
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_53__str__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_52__str__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_52__str__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_v_units = NULL;
  PyObject *__pyx_v_s = NULL;
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "CoolProp/CoolProp.pyx":1064
 *         Return a string representation of the state
 *         """
 *         units={'T': 'K',             # <<<<<<<<<<<<<<
 *                'p': 'kPa',
 *                'rho': 'kg/m^3',
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_T, __pyx_n_s_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_p, __pyx_n_s_kPa) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rho, __pyx_kp_s_kg_m_3) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Q, __pyx_kp_s_kg_kg) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_h, __pyx_kp_s_kJ_kg) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_u, __pyx_kp_s_kJ_kg) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_s, __pyx_kp_s_kJ_kg_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_visc, __pyx_kp_s_Pa_s) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_k, __pyx_kp_s_kW_m_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cp, __pyx_kp_s_kJ_kg_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cp0, __pyx_kp_s_kJ_kg_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cv, __pyx_kp_s_kJ_kg_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dpdT, __pyx_kp_s_kPa_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Tsat, __pyx_n_s_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_superheat, __pyx_n_s_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_subcooling, __pyx_n_s_K) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_MM, __pyx_kp_s_kg_kmol) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
  __pyx_v_units = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":1082
 *                'MM':'kg/kmol'
 *         }
 *         s='phase = '+self.phase+'\n'             # <<<<<<<<<<<<<<
 *         for k in ['T','p','rho','Q','h','u','s','visc','k','cp','cp0','cv','dpdT','Prandtl','superheat','subcooling','MM']:
 *             if k in units:
 */
  __pyx_t_1 = PyNumber_Add(__pyx_kp_s_phase_2, __pyx_v_self->phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_kp_s__26); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_s = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":1083
 *         }
 *         s='phase = '+self.phase+'\n'
 *         for k in ['T','p','rho','Q','h','u','s','visc','k','cp','cp0','cv','dpdT','Prandtl','superheat','subcooling','MM']:             # <<<<<<<<<<<<<<
 *             if k in units:
 *                 s+=k+' = '+str(getattr(self,k))+' '+units[k]+'\n'
 */
  __pyx_t_2 = __pyx_tuple__27; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
  for (;;) {
    if (__pyx_t_3 >= 17) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1083, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1083, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "CoolProp/CoolProp.pyx":1084
 *         s='phase = '+self.phase+'\n'
 *         for k in ['T','p','rho','Q','h','u','s','visc','k','cp','cp0','cv','dpdT','Prandtl','superheat','subcooling','MM']:
 *             if k in units:             # <<<<<<<<<<<<<<
 *                 s+=k+' = '+str(getattr(self,k))+' '+units[k]+'\n'
 *             else:
 */
    __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_v_k, __pyx_v_units, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1084, __pyx_L1_error)
    __pyx_t_5 = (__pyx_t_4 != 0);
    if (__pyx_t_5) {

      /* "CoolProp/CoolProp.pyx":1085
 *         for k in ['T','p','rho','Q','h','u','s','visc','k','cp','cp0','cv','dpdT','Prandtl','superheat','subcooling','MM']:
 *             if k in units:
 *                 s+=k+' = '+str(getattr(self,k))+' '+units[k]+'\n'             # <<<<<<<<<<<<<<
 *             else:
 *                 s+=k+' = '+str(getattr(self,k))+' NO UNITS'+'\n'
 */
      __pyx_t_1 = PyNumber_Add(__pyx_v_k, __pyx_kp_s__28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_self), __pyx_v_k); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_t_6, __pyx_kp_s__29); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_units, __pyx_v_k); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = PyNumber_Add(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_kp_s__26); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_s, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1085, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "CoolProp/CoolProp.pyx":1084
 *         s='phase = '+self.phase+'\n'
 *         for k in ['T','p','rho','Q','h','u','s','visc','k','cp','cp0','cv','dpdT','Prandtl','superheat','subcooling','MM']:
 *             if k in units:             # <<<<<<<<<<<<<<
 *                 s+=k+' = '+str(getattr(self,k))+' '+units[k]+'\n'
 *             else:
 */
      goto __pyx_L5;
    }

    /* "CoolProp/CoolProp.pyx":1087
 *                 s+=k+' = '+str(getattr(self,k))+' '+units[k]+'\n'
 *             else:
 *                 s+=k+' = '+str(getattr(self,k))+' NO UNITS'+'\n'             # <<<<<<<<<<<<<<
 *         return s.rstrip()
 * 
 */
    /*else*/ {
      __pyx_t_1 = PyNumber_Add(__pyx_v_k, __pyx_kp_s__28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_GetAttr(((PyObject *)__pyx_v_self), __pyx_v_k); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_t_6, __pyx_kp_s_NO_UNITS); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Add(__pyx_t_7, __pyx_kp_s__26); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_s, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1087, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_7);
      __pyx_t_7 = 0;
    }
    __pyx_L5:;

    /* "CoolProp/CoolProp.pyx":1083
 *         }
 *         s='phase = '+self.phase+'\n'
 *         for k in ['T','p','rho','Q','h','u','s','visc','k','cp','cp0','cv','dpdT','Prandtl','superheat','subcooling','MM']:             # <<<<<<<<<<<<<<
 *             if k in units:
 *                 s+=k+' = '+str(getattr(self,k))+' '+units[k]+'\n'
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "CoolProp/CoolProp.pyx":1088
 *             else:
 *                 s+=k+' = '+str(getattr(self,k))+' NO UNITS'+'\n'
 *         return s.rstrip()             # <<<<<<<<<<<<<<
 * 
 *     cpdef State copy(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_rstrip); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":1060
 * #             _disable_TTSE_LUT(<bytes>Fluid)
 * #
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return a string representation of the state
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_units);
  __Pyx_XDECREF(__pyx_v_s);
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":1090
 *         return s.rstrip()
 * 
 *     cpdef State copy(self):             # <<<<<<<<<<<<<<
 *         """
 *         Make a copy of this State class
 */

static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_55copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_f_8CoolProp_8CoolProp_5State_copy(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, int __pyx_skip_dispatch) {
  struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_S = 0;
  struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("copy", 0);
  /* 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
    static PY_UINT64_T tp_dict_version = 0, obj_dict_version = 0;
    if (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict && tp_dict_version == __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) && (!Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset || obj_dict_version == __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))))));
    else {
      PY_UINT64_T type_dict_guard = (likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict)) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1090, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_8CoolProp_8CoolProp_5State_55copy)) {
        __Pyx_XDECREF(((PyObject *)__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, 1090, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8CoolProp_8CoolProp_State))))) __PYX_ERR(0, 1090, __pyx_L1_error)
        __pyx_r = ((struct __pyx_obj_8CoolProp_8CoolProp_State *)__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
      tp_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) ? __PYX_GET_DICT_VERSION(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dict) : 0;
      obj_dict_version = likely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset) ? __PYX_GET_DICT_VERSION(_PyObject_GetDictPtr(((PyObject *)__pyx_v_self))) : 0;
      if (unlikely(type_dict_guard != tp_dict_version)) {
        tp_dict_version = obj_dict_version = 0;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
    }
    #endif
  }

  /* "CoolProp/CoolProp.pyx":1094
 *         Make a copy of this State class
 *         """
 *         cdef State S = State(self.Fluid,dict(T=self.T_,D=self.rho_))             # <<<<<<<<<<<<<<
 *         S.phase = self.phase
 *         return S
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->T_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_T, __pyx_t_2) < 0) __PYX_ERR(0, 1094, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->rho_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_D, __pyx_t_2) < 0) __PYX_ERR(0, 1094, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self->Fluid);
  __Pyx_GIVEREF(__pyx_v_self->Fluid);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->Fluid);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_State), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_S = ((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":1095
 *         """
 *         cdef State S = State(self.Fluid,dict(T=self.T_,D=self.rho_))
 *         S.phase = self.phase             # <<<<<<<<<<<<<<
 *         return S
 * 
 */
  __pyx_t_1 = __pyx_v_self->phase;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_S->phase);
  __Pyx_DECREF(__pyx_v_S->phase);
  __pyx_v_S->phase = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":1096
 *         cdef State S = State(self.Fluid,dict(T=self.T_,D=self.rho_))
 *         S.phase = self.phase
 *         return S             # <<<<<<<<<<<<<<
 * 
 * def rebuildState(d):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_S));
  __pyx_r = __pyx_v_S;
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":1090
 *         return s.rstrip()
 * 
 *     cpdef State copy(self):             # <<<<<<<<<<<<<<
 *         """
 *         Make a copy of this State class
 */

  /* 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("CoolProp.CoolProp.State.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_S);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_55copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_8CoolProp_8CoolProp_5State_54copy[] = "\n        Make a copy of this State class\n        ";
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_55copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("copy (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_54copy(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_54copy(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("copy", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_f_8CoolProp_8CoolProp_5State_copy(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1090, __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("CoolProp.CoolProp.State.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pxd":13
 * cdef class State:
 *     cdef AbstractState pAS
 *     cdef readonly bytes Fluid, phase             # <<<<<<<<<<<<<<
 *     cdef int iFluid,iParam1,iParam2,iOutput
 *     cdef double T_, rho_, p_
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_5Fluid_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_5Fluid_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_5Fluid___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_5Fluid___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->Fluid);
  __pyx_r = __pyx_v_self->Fluid;
  goto __pyx_L0;

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

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_5phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_5phase_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_5State_5phase___get__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_5phase___get__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->phase);
  __pyx_r = __pyx_v_self->phase;
  goto __pyx_L0;

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_57__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_57__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_8CoolProp_8CoolProp_5State_56__reduce_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_56__reduce_cython__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __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;
  int __pyx_t_10;
  int __pyx_t_11;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.Fluid, self.T_, self.iFluid, self.iOutput, self.iParam1, self.iParam2, self.pAS, self.p_, self.phase, self.rho_)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->T_); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->iFluid); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->iOutput); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->iParam1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->iParam2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->p_); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->rho_); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyTuple_New(10); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_self->Fluid);
  __Pyx_GIVEREF(__pyx_v_self->Fluid);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_self->Fluid);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->pAS));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->pAS));
  PyTuple_SET_ITEM(__pyx_t_8, 6, ((PyObject *)__pyx_v_self->pAS));
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_8, 7, __pyx_t_6);
  __Pyx_INCREF(__pyx_v_self->phase);
  __Pyx_GIVEREF(__pyx_v_self->phase);
  PyTuple_SET_ITEM(__pyx_t_8, 8, __pyx_v_self->phase);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_8, 9, __pyx_t_7);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.Fluid, self.T_, self.iFluid, self.iOutput, self.iParam1, self.iParam2, self.pAS, self.p_, self.phase, self.rho_)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_8 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_v__dict = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "(tree fragment)":7
 *     state = (self.Fluid, self.T_, self.iFluid, self.iOutput, self.iParam1, self.iParam2, self.pAS, self.p_, self.phase, self.rho_)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_9 = (__pyx_v__dict != Py_None);
  __pyx_t_10 = (__pyx_t_9 != 0);
  if (__pyx_t_10) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v__dict);
    __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_7));
    __pyx_t_7 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.Fluid is not None or self.pAS is not None or self.phase is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.Fluid, self.T_, self.iFluid, self.iOutput, self.iParam1, self.iParam2, self.pAS, self.p_, self.phase, self.rho_)
 *     _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 = self.Fluid is not None or self.pAS is not None or self.phase is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, None), state
 */
  /*else*/ {
    __pyx_t_9 = (__pyx_v_self->Fluid != ((PyObject*)Py_None));
    __pyx_t_11 = (__pyx_t_9 != 0);
    if (!__pyx_t_11) {
    } else {
      __pyx_t_10 = __pyx_t_11;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_11 = (((PyObject *)__pyx_v_self->pAS) != Py_None);
    __pyx_t_9 = (__pyx_t_11 != 0);
    if (!__pyx_t_9) {
    } else {
      __pyx_t_10 = __pyx_t_9;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_9 = (__pyx_v_self->phase != ((PyObject*)Py_None));
    __pyx_t_11 = (__pyx_t_9 != 0);
    __pyx_t_10 = __pyx_t_11;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_10;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.Fluid is not None or self.pAS is not None or self.phase is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, None), state
 *     else:
 */
  __pyx_t_10 = (__pyx_v_use_setstate != 0);
  if (__pyx_t_10) {

    /* "(tree fragment)":13
 *         use_setstate = self.Fluid is not None or self.pAS is not None or self.phase is not None
 *     if use_setstate:
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_State); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173401925);
    __Pyx_GIVEREF(__pyx_int_173401925);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_173401925);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_8, 2, Py_None);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.Fluid is not None or self.pAS is not None or self.phase is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, None), state
 *     else:
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_State__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_State); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_INCREF(__pyx_int_173401925);
    __Pyx_GIVEREF(__pyx_int_173401925);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_173401925);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8);
    __pyx_t_6 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 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_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_8);
  __Pyx_AddTraceback("CoolProp.CoolProp.State.__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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_State__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_59__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static PyObject *__pyx_pw_8CoolProp_8CoolProp_5State_59__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_8CoolProp_8CoolProp_5State_58__setstate_cython__(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_5State_58__setstate_cython__(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_State, (type(self), 0xa55e745, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_State__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(4, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_State__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_State, (type(self), 0xa55e745, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_State__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("CoolProp.CoolProp.State.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "CoolProp/CoolProp.pyx":1098
 *         return S
 * 
 * def rebuildState(d):             # <<<<<<<<<<<<<<
 *     S=State(d['Fluid'],{'T':d['T'],'D':d['rho']},phase=d['phase'])
 *     return S
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_83rebuildState(PyObject *__pyx_self, PyObject *__pyx_v_d); /*proto*/
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_83rebuildState = {"rebuildState", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_83rebuildState, METH_O, 0};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_83rebuildState(PyObject *__pyx_self, PyObject *__pyx_v_d) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rebuildState (wrapper)", 0);
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_82rebuildState(__pyx_self, ((PyObject *)__pyx_v_d));

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

static PyObject *__pyx_pf_8CoolProp_8CoolProp_82rebuildState(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_d) {
  struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v_S = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("rebuildState", 0);

  /* "CoolProp/CoolProp.pyx":1099
 * 
 * def rebuildState(d):
 *     S=State(d['Fluid'],{'T':d['T'],'D':d['rho']},phase=d['phase'])             # <<<<<<<<<<<<<<
 *     return S
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_d, __pyx_n_s_Fluid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_d, __pyx_n_s_T); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_T, __pyx_t_3) < 0) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_d, __pyx_n_s_rho); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_D, __pyx_t_3) < 0) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_d, __pyx_n_s_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_phase, __pyx_t_1) < 0) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_State), __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_S = ((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":1100
 * def rebuildState(d):
 *     S=State(d['Fluid'],{'T':d['T'],'D':d['rho']},phase=d['phase'])
 *     return S             # <<<<<<<<<<<<<<
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_S));
  __pyx_r = ((PyObject *)__pyx_v_S);
  goto __pyx_L0;

  /* "CoolProp/CoolProp.pyx":1098
 *         return S
 * 
 * def rebuildState(d):             # <<<<<<<<<<<<<<
 *     S=State(d['Fluid'],{'T':d['T'],'D':d['rho']},phase=d['phase'])
 *     return S
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("CoolProp.CoolProp.rebuildState", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_S);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PyPhaseEnvelopeData(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_85__pyx_unpickle_PyPhaseEnvelopeData(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_85__pyx_unpickle_PyPhaseEnvelopeData = {"__pyx_unpickle_PyPhaseEnvelopeData", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_85__pyx_unpickle_PyPhaseEnvelopeData, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_85__pyx_unpickle_PyPhaseEnvelopeData(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;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyPhaseEnvelopeData (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_PyPhaseEnvelopeData", 1, 3, 3, 1); __PYX_ERR(4, 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_PyPhaseEnvelopeData", 1, 3, 3, 2); __PYX_ERR(4, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PyPhaseEnvelopeData") < 0)) __PYX_ERR(4, 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(4, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PyPhaseEnvelopeData", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(4, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PyPhaseEnvelopeData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_84__pyx_unpickle_PyPhaseEnvelopeData(__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_8CoolProp_8CoolProp_84__pyx_unpickle_PyPhaseEnvelopeData(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_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;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyPhaseEnvelopeData", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfb8c701:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xfb8c701) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfb8c701:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))" % __pyx_checksum)
 *     __pyx_result = PyPhaseEnvelopeData.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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(4, 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 != 0xfb8c701:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PyPhaseEnvelopeData.__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(4, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xfb, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 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(4, 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(4, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xfb8c701:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))" % __pyx_checksum)
 *     __pyx_result = PyPhaseEnvelopeData.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_PyPhaseEnvelopeData), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))" % __pyx_checksum)
 *     __pyx_result = PyPhaseEnvelopeData.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __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 = PyPhaseEnvelopeData.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __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(4, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyPhaseEnvelopeData__set_state(((struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 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 0xfb8c701 = (K, Q, T, TypeI, hmolar_liq, hmolar_vap, iTsat_max, icrit, ipsat_max, lnT, lnp, lnrhomolar_liq, lnrhomolar_vap, p, rhomolar_liq, rhomolar_vap, smolar_liq, smolar_vap, x, y))" % __pyx_checksum)
 *     __pyx_result = PyPhaseEnvelopeData.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __pyx_result, tuple __pyx_state):
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]
 */
  __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_PyPhaseEnvelopeData(__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("CoolProp.CoolProp.__pyx_unpickle_PyPhaseEnvelopeData", __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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]
 *     if len(__pyx_state) > 20 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyPhaseEnvelopeData__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  bool __pyx_t_2;
  size_t __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyPhaseEnvelopeData__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __pyx_result, tuple __pyx_state):
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 20 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[20])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->K);
  __Pyx_DECREF(__pyx_v___pyx_result->K);
  __pyx_v___pyx_result->K = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->Q);
  __Pyx_DECREF(__pyx_v___pyx_result->Q);
  __pyx_v___pyx_result->Q = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->T);
  __Pyx_DECREF(__pyx_v___pyx_result->T);
  __pyx_v___pyx_result->T = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->TypeI = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->hmolar_liq);
  __Pyx_DECREF(__pyx_v___pyx_result->hmolar_liq);
  __pyx_v___pyx_result->hmolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->hmolar_vap);
  __Pyx_DECREF(__pyx_v___pyx_result->hmolar_vap);
  __pyx_v___pyx_result->hmolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->iTsat_max = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->icrit = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ipsat_max = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->lnT);
  __Pyx_DECREF(__pyx_v___pyx_result->lnT);
  __pyx_v___pyx_result->lnT = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->lnp);
  __Pyx_DECREF(__pyx_v___pyx_result->lnp);
  __pyx_v___pyx_result->lnp = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 11, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->lnrhomolar_liq);
  __Pyx_DECREF(__pyx_v___pyx_result->lnrhomolar_liq);
  __pyx_v___pyx_result->lnrhomolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 12, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->lnrhomolar_vap);
  __Pyx_DECREF(__pyx_v___pyx_result->lnrhomolar_vap);
  __pyx_v___pyx_result->lnrhomolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 13, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->p);
  __Pyx_DECREF(__pyx_v___pyx_result->p);
  __pyx_v___pyx_result->p = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 14, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->rhomolar_liq);
  __Pyx_DECREF(__pyx_v___pyx_result->rhomolar_liq);
  __pyx_v___pyx_result->rhomolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 15, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->rhomolar_vap);
  __Pyx_DECREF(__pyx_v___pyx_result->rhomolar_vap);
  __pyx_v___pyx_result->rhomolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 16, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->smolar_liq);
  __Pyx_DECREF(__pyx_v___pyx_result->smolar_liq);
  __pyx_v___pyx_result->smolar_liq = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 17, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->smolar_vap);
  __Pyx_DECREF(__pyx_v___pyx_result->smolar_vap);
  __pyx_v___pyx_result->smolar_vap = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 18, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->x);
  __Pyx_DECREF(__pyx_v___pyx_result->x);
  __pyx_v___pyx_result->x = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 19, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->y);
  __Pyx_DECREF(__pyx_v___pyx_result->y);
  __pyx_v___pyx_result->y = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __pyx_result, tuple __pyx_state):
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]
 *     if len(__pyx_state) > 20 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[20])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(4, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 20) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]
 *     if len(__pyx_state) > 20 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[20])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 20, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __pyx_result, tuple __pyx_state):
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]
 *     if len(__pyx_state) > 20 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[20])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]
 *     if len(__pyx_state) > 20 and hasattr(__pyx_result, '__dict__'):
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PyPhaseEnvelopeData__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PyCriticalState(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_87__pyx_unpickle_PyCriticalState(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_87__pyx_unpickle_PyCriticalState = {"__pyx_unpickle_PyCriticalState", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_87__pyx_unpickle_PyCriticalState, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_87__pyx_unpickle_PyCriticalState(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;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyCriticalState (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_PyCriticalState", 1, 3, 3, 1); __PYX_ERR(4, 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_PyCriticalState", 1, 3, 3, 2); __PYX_ERR(4, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PyCriticalState") < 0)) __PYX_ERR(4, 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(4, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PyCriticalState", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(4, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PyCriticalState", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_86__pyx_unpickle_PyCriticalState(__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_8CoolProp_8CoolProp_86__pyx_unpickle_PyCriticalState(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_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;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyCriticalState", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb5e5983:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb5e5983) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb5e5983:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))" % __pyx_checksum)
 *     __pyx_result = PyCriticalState.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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(4, 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 != 0xb5e5983:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PyCriticalState.__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(4, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 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(4, 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(4, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xb5e5983:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))" % __pyx_checksum)
 *     __pyx_result = PyCriticalState.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyCriticalState__set_state(<PyCriticalState> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_PyCriticalState), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))" % __pyx_checksum)
 *     __pyx_result = PyCriticalState.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PyCriticalState__set_state(<PyCriticalState> __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 = PyCriticalState.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyCriticalState__set_state(<PyCriticalState> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PyCriticalState__set_state(PyCriticalState __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(4, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyCriticalState__set_state(((struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 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 0xb5e5983 = (T, hmolar, p, rhomolar, smolar, stable))" % __pyx_checksum)
 *     __pyx_result = PyCriticalState.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PyCriticalState__set_state(<PyCriticalState> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyCriticalState__set_state(<PyCriticalState> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PyCriticalState__set_state(PyCriticalState __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.smolar = __pyx_state[4]; __pyx_result.stable = __pyx_state[5]
 */
  __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_PyCriticalState(__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("CoolProp.CoolProp.__pyx_unpickle_PyCriticalState", __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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PyCriticalState__set_state(<PyCriticalState> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyCriticalState__set_state(PyCriticalState __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.smolar = __pyx_state[4]; __pyx_result.stable = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyCriticalState__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  bool __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyCriticalState__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PyCriticalState__set_state(PyCriticalState __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.smolar = __pyx_state[4]; __pyx_result.stable = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->T = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->hmolar = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->p = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rhomolar = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->smolar = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->stable = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PyCriticalState__set_state(PyCriticalState __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.smolar = __pyx_state[4]; __pyx_result.stable = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(4, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 6) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.smolar = __pyx_state[4]; __pyx_result.stable = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PyCriticalState__set_state(PyCriticalState __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.smolar = __pyx_state[4]; __pyx_result.stable = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PyCriticalState__set_state(<PyCriticalState> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyCriticalState__set_state(PyCriticalState __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.smolar = __pyx_state[4]; __pyx_result.stable = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PyCriticalState__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PyGuessesStructure(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_89__pyx_unpickle_PyGuessesStructure(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_89__pyx_unpickle_PyGuessesStructure = {"__pyx_unpickle_PyGuessesStructure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_89__pyx_unpickle_PyGuessesStructure, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_89__pyx_unpickle_PyGuessesStructure(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;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyGuessesStructure (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_PyGuessesStructure", 1, 3, 3, 1); __PYX_ERR(4, 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_PyGuessesStructure", 1, 3, 3, 2); __PYX_ERR(4, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PyGuessesStructure") < 0)) __PYX_ERR(4, 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(4, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PyGuessesStructure", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(4, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PyGuessesStructure", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_88__pyx_unpickle_PyGuessesStructure(__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_8CoolProp_8CoolProp_88__pyx_unpickle_PyGuessesStructure(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_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;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyGuessesStructure", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x0a6413e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x0a6413e) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x0a6413e:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))" % __pyx_checksum)
 *     __pyx_result = PyGuessesStructure.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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(4, 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 != 0x0a6413e:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PyGuessesStructure.__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(4, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x0a, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 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(4, 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(4, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x0a6413e:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))" % __pyx_checksum)
 *     __pyx_result = PyGuessesStructure.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_PyGuessesStructure), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))" % __pyx_checksum)
 *     __pyx_result = PyGuessesStructure.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __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 = PyGuessesStructure.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __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(4, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyGuessesStructure__set_state(((struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 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 0x0a6413e = (T, hmolar, p, rhomolar, rhomolar_liq, rhomolar_vap, smolar, x, y))" % __pyx_checksum)
 *     __pyx_result = PyGuessesStructure.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]
 */
  __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_PyGuessesStructure(__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("CoolProp.CoolProp.__pyx_unpickle_PyGuessesStructure", __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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PyGuessesStructure__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __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;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PyGuessesStructure__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->T = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->hmolar = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->p = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rhomolar = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rhomolar_liq = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rhomolar_vap = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->smolar = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->x);
  __Pyx_DECREF(__pyx_v___pyx_result->x);
  __pyx_v___pyx_result->x = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->y);
  __Pyx_DECREF(__pyx_v___pyx_result->y);
  __pyx_v___pyx_result->y = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(4, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 9) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __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_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __pyx_result, tuple __pyx_state):
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

  /* 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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PyGuessesStructure__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PySpinodalData(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_91__pyx_unpickle_PySpinodalData(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_91__pyx_unpickle_PySpinodalData = {"__pyx_unpickle_PySpinodalData", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_91__pyx_unpickle_PySpinodalData, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_91__pyx_unpickle_PySpinodalData(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;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PySpinodalData (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_PySpinodalData", 1, 3, 3, 1); __PYX_ERR(4, 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_PySpinodalData", 1, 3, 3, 2); __PYX_ERR(4, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_PySpinodalData") < 0)) __PYX_ERR(4, 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(4, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PySpinodalData", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(4, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PySpinodalData", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_90__pyx_unpickle_PySpinodalData(__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_8CoolProp_8CoolProp_90__pyx_unpickle_PySpinodalData(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_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;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PySpinodalData", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x592f492:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x592f492 = (M1, delta, tau))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0x592f492) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x592f492:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x592f492 = (M1, delta, tau))" % __pyx_checksum)
 *     __pyx_result = PySpinodalData.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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(4, 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 != 0x592f492:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x592f492 = (M1, delta, tau))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = PySpinodalData.__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(4, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0x59, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 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(4, 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(4, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0x592f492:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x592f492 = (M1, delta, tau))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0x592f492 = (M1, delta, tau))" % __pyx_checksum)
 *     __pyx_result = PySpinodalData.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PySpinodalData__set_state(<PySpinodalData> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_PySpinodalData), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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 0x592f492 = (M1, delta, tau))" % __pyx_checksum)
 *     __pyx_result = PySpinodalData.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PySpinodalData__set_state(<PySpinodalData> __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 = PySpinodalData.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PySpinodalData__set_state(<PySpinodalData> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PySpinodalData__set_state(PySpinodalData __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(4, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PySpinodalData__set_state(((struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 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 0x592f492 = (M1, delta, tau))" % __pyx_checksum)
 *     __pyx_result = PySpinodalData.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PySpinodalData__set_state(<PySpinodalData> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PySpinodalData__set_state(<PySpinodalData> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PySpinodalData__set_state(PySpinodalData __pyx_result, tuple __pyx_state):
 *     __pyx_result.M1 = __pyx_state[0]; __pyx_result.delta = __pyx_state[1]; __pyx_result.tau = __pyx_state[2]
 */
  __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_PySpinodalData(__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("CoolProp.CoolProp.__pyx_unpickle_PySpinodalData", __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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PySpinodalData__set_state(<PySpinodalData> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PySpinodalData__set_state(PySpinodalData __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.M1 = __pyx_state[0]; __pyx_result.delta = __pyx_state[1]; __pyx_result.tau = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_PySpinodalData__set_state(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector<double>  __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __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;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PySpinodalData__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PySpinodalData__set_state(PySpinodalData __pyx_result, tuple __pyx_state):
 *     __pyx_result.M1 = __pyx_state[0]; __pyx_result.delta = __pyx_state[1]; __pyx_result.tau = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_vector_from_py_double(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->M1 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_vector_from_py_double(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->delta = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_vector_from_py_double(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->tau = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PySpinodalData__set_state(PySpinodalData __pyx_result, tuple __pyx_state):
 *     __pyx_result.M1 = __pyx_state[0]; __pyx_result.delta = __pyx_state[1]; __pyx_result.tau = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(4, 13, __pyx_L1_error)
  }
  __pyx_t_4 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_5 = ((__pyx_t_4 > 3) != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 != 0);
  __pyx_t_3 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.M1 = __pyx_state[0]; __pyx_result.delta = __pyx_state[1]; __pyx_result.tau = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __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_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PySpinodalData__set_state(PySpinodalData __pyx_result, tuple __pyx_state):
 *     __pyx_result.M1 = __pyx_state[0]; __pyx_result.delta = __pyx_state[1]; __pyx_result.tau = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PySpinodalData__set_state(<PySpinodalData> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PySpinodalData__set_state(PySpinodalData __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.M1 = __pyx_state[0]; __pyx_result.delta = __pyx_state[1]; __pyx_result.tau = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* 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_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_PySpinodalData__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_State(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8CoolProp_8CoolProp_93__pyx_unpickle_State(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_8CoolProp_8CoolProp_93__pyx_unpickle_State = {"__pyx_unpickle_State", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_93__pyx_unpickle_State, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8CoolProp_8CoolProp_93__pyx_unpickle_State(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;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_State (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_State", 1, 3, 3, 1); __PYX_ERR(4, 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_State", 1, 3, 3, 2); __PYX_ERR(4, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_State") < 0)) __PYX_ERR(4, 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(4, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_State", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(4, 1, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_State", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8CoolProp_8CoolProp_92__pyx_unpickle_State(__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_8CoolProp_8CoolProp_92__pyx_unpickle_State(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_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;
  __Pyx_RefNannySetupContext("__pyx_unpickle_State", 0);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55e745:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))" % __pyx_checksum)
 */
  __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xa55e745) != 0);
  if (__pyx_t_1) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55e745:
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))" % __pyx_checksum)
 *     __pyx_result = State.__new__(__pyx_type)
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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(4, 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 != 0xa55e745:
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))" % __pyx_checksum)             # <<<<<<<<<<<<<<
 *     __pyx_result = State.__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(4, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xa5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 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(4, 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(4, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum != 0xa55e745:             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))" % __pyx_checksum)
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError("Incompatible checksums (%s vs 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))" % __pyx_checksum)
 *     __pyx_result = State.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_State__set_state(<State> __pyx_result, __pyx_state)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_State), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 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(4, 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 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))" % __pyx_checksum)
 *     __pyx_result = State.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_State__set_state(<State> __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 = State.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_State__set_state(<State> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_State__set_state(State __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(4, 9, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_8CoolProp_8CoolProp___pyx_unpickle_State__set_state(((struct __pyx_obj_8CoolProp_8CoolProp_State *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 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 0xa55e745 = (Fluid, T_, iFluid, iOutput, iParam1, iParam2, pAS, p_, phase, rho_))" % __pyx_checksum)
 *     __pyx_result = State.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_State__set_state(<State> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_State__set_state(<State> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_State__set_state(State __pyx_result, tuple __pyx_state):
 *     __pyx_result.Fluid = __pyx_state[0]; __pyx_result.T_ = __pyx_state[1]; __pyx_result.iFluid = __pyx_state[2]; __pyx_result.iOutput = __pyx_state[3]; __pyx_result.iParam1 = __pyx_state[4]; __pyx_result.iParam2 = __pyx_state[5]; __pyx_result.pAS = __pyx_state[6]; __pyx_result.p_ = __pyx_state[7]; __pyx_result.phase = __pyx_state[8]; __pyx_result.rho_ = __pyx_state[9]
 */
  __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_State(__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("CoolProp.CoolProp.__pyx_unpickle_State", __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_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_State__set_state(<State> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_State__set_state(State __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.Fluid = __pyx_state[0]; __pyx_result.T_ = __pyx_state[1]; __pyx_result.iFluid = __pyx_state[2]; __pyx_result.iOutput = __pyx_state[3]; __pyx_result.iParam1 = __pyx_state[4]; __pyx_result.iParam2 = __pyx_state[5]; __pyx_result.pAS = __pyx_state[6]; __pyx_result.p_ = __pyx_state[7]; __pyx_result.phase = __pyx_state[8]; __pyx_result.rho_ = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8CoolProp_8CoolProp___pyx_unpickle_State__set_state(struct __pyx_obj_8CoolProp_8CoolProp_State *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  __Pyx_RefNannySetupContext("__pyx_unpickle_State__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_State__set_state(State __pyx_result, tuple __pyx_state):
 *     __pyx_result.Fluid = __pyx_state[0]; __pyx_result.T_ = __pyx_state[1]; __pyx_result.iFluid = __pyx_state[2]; __pyx_result.iOutput = __pyx_state[3]; __pyx_result.iParam1 = __pyx_state[4]; __pyx_result.iParam2 = __pyx_state[5]; __pyx_result.pAS = __pyx_state[6]; __pyx_result.p_ = __pyx_state[7]; __pyx_result.phase = __pyx_state[8]; __pyx_result.rho_ = __pyx_state[9]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->Fluid);
  __Pyx_DECREF(__pyx_v___pyx_result->Fluid);
  __pyx_v___pyx_result->Fluid = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->T_ = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->iFluid = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->iOutput = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->iParam1 = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->iParam2 = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8CoolProp_8CoolProp_AbstractState))))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->pAS);
  __Pyx_DECREF(((PyObject *)__pyx_v___pyx_result->pAS));
  __pyx_v___pyx_result->pAS = ((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->p_ = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v___pyx_result->phase);
  __Pyx_DECREF(__pyx_v___pyx_result->phase);
  __pyx_v___pyx_result->phase = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(4, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rho_ = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_State__set_state(State __pyx_result, tuple __pyx_state):
 *     __pyx_result.Fluid = __pyx_state[0]; __pyx_result.T_ = __pyx_state[1]; __pyx_result.iFluid = __pyx_state[2]; __pyx_result.iOutput = __pyx_state[3]; __pyx_result.iParam1 = __pyx_state[4]; __pyx_result.iParam2 = __pyx_state[5]; __pyx_result.pAS = __pyx_state[6]; __pyx_result.p_ = __pyx_state[7]; __pyx_result.phase = __pyx_state[8]; __pyx_result.rho_ = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(4, 13, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_6 = ((__pyx_t_5 > 10) != 0);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(4, 13, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_6 != 0);
  __pyx_t_4 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.Fluid = __pyx_state[0]; __pyx_result.T_ = __pyx_state[1]; __pyx_result.iFluid = __pyx_state[2]; __pyx_result.iOutput = __pyx_state[3]; __pyx_result.iParam1 = __pyx_state[4]; __pyx_result.iParam2 = __pyx_state[5]; __pyx_result.pAS = __pyx_state[6]; __pyx_result.p_ = __pyx_state[7]; __pyx_result.phase = __pyx_state[8]; __pyx_result.rho_ = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[10])             # <<<<<<<<<<<<<<
 */
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_update); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(4, 14, __pyx_L1_error)
    }
    __pyx_t_8 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_State__set_state(State __pyx_result, tuple __pyx_state):
 *     __pyx_result.Fluid = __pyx_state[0]; __pyx_result.T_ = __pyx_state[1]; __pyx_result.iFluid = __pyx_state[2]; __pyx_result.iOutput = __pyx_state[3]; __pyx_result.iParam1 = __pyx_state[4]; __pyx_result.iParam2 = __pyx_state[5]; __pyx_result.pAS = __pyx_state[6]; __pyx_result.p_ = __pyx_state[7]; __pyx_result.phase = __pyx_state[8]; __pyx_result.rho_ = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_State__set_state(<State> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_State__set_state(State __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.Fluid = __pyx_state[0]; __pyx_result.T_ = __pyx_state[1]; __pyx_result.iFluid = __pyx_state[2]; __pyx_result.iOutput = __pyx_state[3]; __pyx_result.iParam1 = __pyx_state[4]; __pyx_result.iParam2 = __pyx_state[5]; __pyx_result.pAS = __pyx_state[6]; __pyx_result.p_ = __pyx_state[7]; __pyx_result.phase = __pyx_state[8]; __pyx_result.rho_ = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 */

  /* 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_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CoolProp.CoolProp.__pyx_unpickle_State__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "vector.to_py":60
 * 
 * @cname("__pyx_convert_vector_to_py_double")
 * cdef object __pyx_convert_vector_to_py_double(vector[X]& v):             # <<<<<<<<<<<<<<
 *     return [v[i] for i in range(v.size())]
 * 
 */

static PyObject *__pyx_convert_vector_to_py_double(const std::vector<double>  &__pyx_v_v) {
  size_t __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_double", 0);

  /* "vector.to_py":61
 * @cname("__pyx_convert_vector_to_py_double")
 * cdef object __pyx_convert_vector_to_py_double(vector[X]& v):
 *     return [v[i] for i in range(v.size())]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_v.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;
    __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "vector.to_py":60
 * 
 * @cname("__pyx_convert_vector_to_py_double")
 * cdef object __pyx_convert_vector_to_py_double(vector[X]& v):             # <<<<<<<<<<<<<<
 *     return [v[i] for i in range(v.size())]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_double")
 * cdef vector[X] __pyx_convert_vector_from_py_double(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

static std::vector<double>  __pyx_convert_vector_from_py_double(PyObject *__pyx_v_o) {
  std::vector<double>  __pyx_v_v;
  PyObject *__pyx_v_item = NULL;
  std::vector<double>  __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_double", 0);

  /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_double(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 47, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(4, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(4, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      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(4, 47, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "vector.from_py":48
 *     cdef vector[X] v
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 *     return v
 * 
 */
    __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_item); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 48, __pyx_L1_error)
    __pyx_v_v.push_back(((double)__pyx_t_5));

    /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_double(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":49
 *     for item in o:
 *         v.push_back(<X>item)
 *     return v             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_double")
 * cdef vector[X] __pyx_convert_vector_from_py_double(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.from_py":13
 * 
 * @cname("__pyx_convert_string_from_py_std__in_string")
 * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t length
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 */

static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) {
  Py_ssize_t __pyx_v_length;
  char const *__pyx_v_data;
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0);

  /* "string.from_py":15
 * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *:
 *     cdef Py_ssize_t length
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)             # <<<<<<<<<<<<<<
 *     return string(data, length)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(4, 15, __pyx_L1_error)
  __pyx_v_data = __pyx_t_1;

  /* "string.from_py":16
 *     cdef Py_ssize_t length
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 *     return string(data, length)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = std::string(__pyx_v_data, __pyx_v_length);
  goto __pyx_L0;

  /* "string.from_py":13
 * 
 * @cname("__pyx_convert_string_from_py_std__in_string")
 * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t length
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":31
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyObject_string_to_py_std__in_string", 0);

  /* "string.to_py":32
 * @cname("__pyx_convert_PyObject_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":31
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyObject_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":37
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyUnicode_string_to_py_std__in_string", 0);

  /* "string.to_py":38
 * @cname("__pyx_convert_PyUnicode_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyStr_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":37
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyUnicode_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":43
 * 
 * @cname("__pyx_convert_PyStr_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyStr_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyStr_string_to_py_std__in_string", 0);

  /* "string.to_py":44
 * @cname("__pyx_convert_PyStr_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":43
 * 
 * @cname("__pyx_convert_PyStr_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyStr_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":49
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyBytes_string_to_py_std__in_string", 0);

  /* "string.to_py":50
 * @cname("__pyx_convert_PyBytes_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":49
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyBytes_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":55
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
 * 
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyByteArray_string_to_py_std__in_string", 0);

  /* "string.to_py":56
 * @cname("__pyx_convert_PyByteArray_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyByteArray_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":55
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyByteArray_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "vector.to_py":60
 * 
 * @cname("__pyx_convert_vector_to_py_std_3a__3a_string")
 * cdef object __pyx_convert_vector_to_py_std_3a__3a_string(vector[X]& v):             # <<<<<<<<<<<<<<
 *     return [v[i] for i in range(v.size())]
 * 
 */

static PyObject *__pyx_convert_vector_to_py_std_3a__3a_string(const std::vector<std::string>  &__pyx_v_v) {
  size_t __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_std_3a__3a_string", 0);

  /* "vector.to_py":61
 * @cname("__pyx_convert_vector_to_py_std_3a__3a_string")
 * cdef object __pyx_convert_vector_to_py_std_3a__3a_string(vector[X]& v):
 *     return [v[i] for i in range(v.size())]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_v.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;
    __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "vector.to_py":60
 * 
 * @cname("__pyx_convert_vector_to_py_std_3a__3a_string")
 * cdef object __pyx_convert_vector_to_py_std_3a__3a_string(vector[X]& v):             # <<<<<<<<<<<<<<
 *     return [v[i] for i in range(v.size())]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_std_3a__3a_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(const std::vector<__pyx_t_8CoolProp_8typedefs_CoolPropDbl>  &__pyx_v_v) {
  size_t __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl", 0);

  /* "vector.to_py":61
 * @cname("__pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl")
 * cdef object __pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(vector[X]& v):
 *     return [v[i] for i in range(v.size())]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_v.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;
    __pyx_t_5 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "vector.to_py":60
 * 
 * @cname("__pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl")
 * cdef object __pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl(vector[X]& v):             # <<<<<<<<<<<<<<
 *     return [v[i] for i in range(v.size())]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py___pyx_t_8CoolProp_8typedefs_CoolPropDbl", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(const std::vector<std::vector<double> >  &__pyx_v_v) {
  size_t __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___", 0);

  /* "vector.to_py":61
 * @cname("__pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___")
 * cdef object __pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(vector[X]& v):
 *     return [v[i] for i in range(v.size())]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_v_v.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;
    __pyx_t_5 = __pyx_convert_vector_to_py_double((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(4, 61, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "vector.to_py":60
 * 
 * @cname("__pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___")
 * cdef object __pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___(vector[X]& v):             # <<<<<<<<<<<<<<
 *     return [v[i] for i in range(v.size())]
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("vector.to_py.__pyx_convert_vector_to_py_std_3a__3a_vector_3c_double_3e___", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_std_3a__3a_string")
 * cdef vector[X] __pyx_convert_vector_from_py_std_3a__3a_string(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

static std::vector<std::string>  __pyx_convert_vector_from_py_std_3a__3a_string(PyObject *__pyx_v_o) {
  std::vector<std::string>  __pyx_v_v;
  PyObject *__pyx_v_item = NULL;
  std::vector<std::string>  __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  std::string __pyx_t_5;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_std_3a__3a_string", 0);

  /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_std_3a__3a_string(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 47, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(4, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(4, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      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(4, 47, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "vector.from_py":48
 *     cdef vector[X] v
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 *     return v
 * 
 */
    __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_v_item); if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 48, __pyx_L1_error)
    __pyx_v_v.push_back(((std::string)__pyx_t_5));

    /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_std_3a__3a_string(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":49
 *     for item in o:
 *         v.push_back(<X>item)
 *     return v             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_std_3a__3a_string")
 * cdef vector[X] __pyx_convert_vector_from_py_std_3a__3a_string(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_std_3a__3a_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PyPhaseEnvelopeData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *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_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)o);
  p->T = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->p = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->lnT = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->lnp = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->rhomolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->rhomolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->lnrhomolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->lnrhomolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->hmolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->hmolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->smolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->smolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->Q = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->x = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->y = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->K = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8CoolProp_8CoolProp_PyPhaseEnvelopeData(PyObject *o) {
  struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *p = (struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)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);
  Py_CLEAR(p->T);
  Py_CLEAR(p->p);
  Py_CLEAR(p->lnT);
  Py_CLEAR(p->lnp);
  Py_CLEAR(p->rhomolar_liq);
  Py_CLEAR(p->rhomolar_vap);
  Py_CLEAR(p->lnrhomolar_liq);
  Py_CLEAR(p->lnrhomolar_vap);
  Py_CLEAR(p->hmolar_liq);
  Py_CLEAR(p->hmolar_vap);
  Py_CLEAR(p->smolar_liq);
  Py_CLEAR(p->smolar_vap);
  Py_CLEAR(p->Q);
  Py_CLEAR(p->x);
  Py_CLEAR(p->y);
  Py_CLEAR(p->K);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_8CoolProp_8CoolProp_PyPhaseEnvelopeData(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *p = (struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)o;
  if (p->T) {
    e = (*v)(p->T, a); if (e) return e;
  }
  if (p->p) {
    e = (*v)(p->p, a); if (e) return e;
  }
  if (p->lnT) {
    e = (*v)(p->lnT, a); if (e) return e;
  }
  if (p->lnp) {
    e = (*v)(p->lnp, a); if (e) return e;
  }
  if (p->rhomolar_liq) {
    e = (*v)(p->rhomolar_liq, a); if (e) return e;
  }
  if (p->rhomolar_vap) {
    e = (*v)(p->rhomolar_vap, a); if (e) return e;
  }
  if (p->lnrhomolar_liq) {
    e = (*v)(p->lnrhomolar_liq, a); if (e) return e;
  }
  if (p->lnrhomolar_vap) {
    e = (*v)(p->lnrhomolar_vap, a); if (e) return e;
  }
  if (p->hmolar_liq) {
    e = (*v)(p->hmolar_liq, a); if (e) return e;
  }
  if (p->hmolar_vap) {
    e = (*v)(p->hmolar_vap, a); if (e) return e;
  }
  if (p->smolar_liq) {
    e = (*v)(p->smolar_liq, a); if (e) return e;
  }
  if (p->smolar_vap) {
    e = (*v)(p->smolar_vap, a); if (e) return e;
  }
  if (p->Q) {
    e = (*v)(p->Q, a); if (e) return e;
  }
  if (p->x) {
    e = (*v)(p->x, a); if (e) return e;
  }
  if (p->y) {
    e = (*v)(p->y, a); if (e) return e;
  }
  if (p->K) {
    e = (*v)(p->K, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8CoolProp_8CoolProp_PyPhaseEnvelopeData(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *p = (struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *)o;
  tmp = ((PyObject*)p->T);
  p->T = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->p);
  p->p = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->lnT);
  p->lnT = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->lnp);
  p->lnp = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->rhomolar_liq);
  p->rhomolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->rhomolar_vap);
  p->rhomolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->lnrhomolar_liq);
  p->lnrhomolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->lnrhomolar_vap);
  p->lnrhomolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->hmolar_liq);
  p->hmolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->hmolar_vap);
  p->hmolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->smolar_liq);
  p->smolar_liq = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->smolar_vap);
  p->smolar_vap = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->Q);
  p->Q = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->x);
  p->x = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->y);
  p->y = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->K);
  p->K = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_TypeI(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_TypeI(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5TypeI_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_iTsat_max(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_iTsat_max(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9iTsat_max_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_ipsat_max(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_ipsat_max(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_9ipsat_max_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_icrit(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_icrit(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_5icrit_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_T(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_T(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1T_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_p(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_p(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1p_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnT(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnT(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnT_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3lnp_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_liq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_liq(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_liq_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_vap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_vap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_12rhomolar_vap_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_liq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_liq(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_liq_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_vap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_vap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_14lnrhomolar_vap_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_liq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_liq(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_liq_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_vap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_vap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10hmolar_vap_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_liq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_liq(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_liq_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_vap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_vap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_10smolar_vap_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_Q(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_Q(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1Q_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_x(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_x(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1x_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_y(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_y(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1y_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_K(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_K(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1K_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8CoolProp_8CoolProp_PyPhaseEnvelopeData[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_1__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_3__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8CoolProp_8CoolProp_PyPhaseEnvelopeData[] = {
  {(char *)"TypeI", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_TypeI, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_TypeI, (char *)0, 0},
  {(char *)"iTsat_max", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_iTsat_max, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_iTsat_max, (char *)0, 0},
  {(char *)"ipsat_max", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_ipsat_max, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_ipsat_max, (char *)0, 0},
  {(char *)"icrit", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_icrit, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_icrit, (char *)0, 0},
  {(char *)"T", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_T, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_T, (char *)0, 0},
  {(char *)"p", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_p, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_p, (char *)0, 0},
  {(char *)"lnT", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnT, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnT, (char *)0, 0},
  {(char *)"lnp", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnp, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnp, (char *)0, 0},
  {(char *)"rhomolar_liq", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_liq, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_liq, (char *)0, 0},
  {(char *)"rhomolar_vap", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_vap, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_rhomolar_vap, (char *)0, 0},
  {(char *)"lnrhomolar_liq", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_liq, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_liq, (char *)0, 0},
  {(char *)"lnrhomolar_vap", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_vap, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_lnrhomolar_vap, (char *)0, 0},
  {(char *)"hmolar_liq", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_liq, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_liq, (char *)0, 0},
  {(char *)"hmolar_vap", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_vap, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_hmolar_vap, (char *)0, 0},
  {(char *)"smolar_liq", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_liq, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_liq, (char *)0, 0},
  {(char *)"smolar_vap", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_vap, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_smolar_vap, (char *)0, 0},
  {(char *)"Q", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_Q, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_Q, (char *)0, 0},
  {(char *)"x", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_x, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_x, (char *)0, 0},
  {(char *)"y", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_y, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_y, (char *)0, 0},
  {(char *)"K", __pyx_getprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_K, __pyx_setprop_8CoolProp_8CoolProp_19PyPhaseEnvelopeData_K, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData = {
  PyVarObject_HEAD_INIT(0, 0)
  "CoolProp.CoolProp.PyPhaseEnvelopeData", /*tp_name*/
  sizeof(struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8CoolProp_8CoolProp_PyPhaseEnvelopeData, /*tp_dealloc*/
  0, /*tp_print*/
  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|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8CoolProp_8CoolProp_PyPhaseEnvelopeData, /*tp_traverse*/
  __pyx_tp_clear_8CoolProp_8CoolProp_PyPhaseEnvelopeData, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8CoolProp_8CoolProp_PyPhaseEnvelopeData, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8CoolProp_8CoolProp_PyPhaseEnvelopeData, /*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_8CoolProp_8CoolProp_PyPhaseEnvelopeData, /*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
};

static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PyGuessesStructure(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *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_8CoolProp_8CoolProp_PyGuessesStructure *)o);
  p->x = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->y = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8CoolProp_8CoolProp_PyGuessesStructure(PyObject *o) {
  struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *p = (struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)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);
  Py_CLEAR(p->x);
  Py_CLEAR(p->y);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_8CoolProp_8CoolProp_PyGuessesStructure(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *p = (struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)o;
  if (p->x) {
    e = (*v)(p->x, a); if (e) return e;
  }
  if (p->y) {
    e = (*v)(p->y, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8CoolProp_8CoolProp_PyGuessesStructure(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *p = (struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *)o;
  tmp = ((PyObject*)p->x);
  p->x = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->y);
  p->y = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_T(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1T_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_T(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1T_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_p(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1p_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_p(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1p_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_8rhomolar_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_hmolar(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_hmolar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6hmolar_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_smolar(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_smolar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_6smolar_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_liq(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_liq(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_liq_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_vap(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_vap(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_12rhomolar_vap_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_x(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_x(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1x_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_y(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_y(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_3__set__(o, v);
  }
  else {
    return __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1y_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8CoolProp_8CoolProp_PyGuessesStructure[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_3__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_5__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8CoolProp_8CoolProp_PyGuessesStructure[] = {
  {(char *)"T", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_T, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_T, (char *)0, 0},
  {(char *)"p", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_p, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_p, (char *)0, 0},
  {(char *)"rhomolar", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar, (char *)0, 0},
  {(char *)"hmolar", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_hmolar, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_hmolar, (char *)0, 0},
  {(char *)"smolar", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_smolar, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_smolar, (char *)0, 0},
  {(char *)"rhomolar_liq", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_liq, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_liq, (char *)0, 0},
  {(char *)"rhomolar_vap", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_vap, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_rhomolar_vap, (char *)0, 0},
  {(char *)"x", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_x, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_x, (char *)0, 0},
  {(char *)"y", __pyx_getprop_8CoolProp_8CoolProp_18PyGuessesStructure_y, __pyx_setprop_8CoolProp_8CoolProp_18PyGuessesStructure_y, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_8CoolProp_8CoolProp_PyGuessesStructure = {
  PyVarObject_HEAD_INIT(0, 0)
  "CoolProp.CoolProp.PyGuessesStructure", /*tp_name*/
  sizeof(struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8CoolProp_8CoolProp_PyGuessesStructure, /*tp_dealloc*/
  0, /*tp_print*/
  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|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8CoolProp_8CoolProp_PyGuessesStructure, /*tp_traverse*/
  __pyx_tp_clear_8CoolProp_8CoolProp_PyGuessesStructure, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8CoolProp_8CoolProp_PyGuessesStructure, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8CoolProp_8CoolProp_PyGuessesStructure, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_8CoolProp_8CoolProp_18PyGuessesStructure_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8CoolProp_8CoolProp_PyGuessesStructure, /*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
};

static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PyCriticalState(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_8CoolProp_8CoolProp_PyCriticalState(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 PyObject *__pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_T(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1T_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_T(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1T_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_p(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1p_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_p(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1p_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_rhomolar(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_rhomolar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_8rhomolar_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_hmolar(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_hmolar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6hmolar_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_smolar(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6smolar_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_smolar(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6smolar_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_stable(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6stable_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_stable(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_6stable_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8CoolProp_8CoolProp_PyCriticalState[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_1__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_15PyCriticalState_3__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8CoolProp_8CoolProp_PyCriticalState[] = {
  {(char *)"T", __pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_T, __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_T, (char *)0, 0},
  {(char *)"p", __pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_p, __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_p, (char *)0, 0},
  {(char *)"rhomolar", __pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_rhomolar, __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_rhomolar, (char *)0, 0},
  {(char *)"hmolar", __pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_hmolar, __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_hmolar, (char *)0, 0},
  {(char *)"smolar", __pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_smolar, __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_smolar, (char *)0, 0},
  {(char *)"stable", __pyx_getprop_8CoolProp_8CoolProp_15PyCriticalState_stable, __pyx_setprop_8CoolProp_8CoolProp_15PyCriticalState_stable, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_8CoolProp_8CoolProp_PyCriticalState = {
  PyVarObject_HEAD_INIT(0, 0)
  "CoolProp.CoolProp.PyCriticalState", /*tp_name*/
  sizeof(struct __pyx_obj_8CoolProp_8CoolProp_PyCriticalState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8CoolProp_8CoolProp_PyCriticalState, /*tp_dealloc*/
  0, /*tp_print*/
  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_8CoolProp_8CoolProp_PyCriticalState, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8CoolProp_8CoolProp_PyCriticalState, /*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_8CoolProp_8CoolProp_PyCriticalState, /*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
};

static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_PySpinodalData(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *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_8CoolProp_8CoolProp_PySpinodalData *)o);
  new((void*)&(p->tau)) std::vector<double> ();
  new((void*)&(p->delta)) std::vector<double> ();
  new((void*)&(p->M1)) std::vector<double> ();
  return o;
}

static void __pyx_tp_dealloc_8CoolProp_8CoolProp_PySpinodalData(PyObject *o) {
  struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *p = (struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *)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
  __Pyx_call_destructor(p->tau);
  __Pyx_call_destructor(p->delta);
  __Pyx_call_destructor(p->M1);
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_14PySpinodalData_tau(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3tau_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_14PySpinodalData_tau(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3tau_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_14PySpinodalData_delta(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_5delta_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_14PySpinodalData_delta(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_5delta_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_14PySpinodalData_M1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_2M1_1__get__(o);
}

static int __pyx_setprop_8CoolProp_8CoolProp_14PySpinodalData_M1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_2M1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8CoolProp_8CoolProp_PySpinodalData[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_1__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_14PySpinodalData_3__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8CoolProp_8CoolProp_PySpinodalData[] = {
  {(char *)"tau", __pyx_getprop_8CoolProp_8CoolProp_14PySpinodalData_tau, __pyx_setprop_8CoolProp_8CoolProp_14PySpinodalData_tau, (char *)0, 0},
  {(char *)"delta", __pyx_getprop_8CoolProp_8CoolProp_14PySpinodalData_delta, __pyx_setprop_8CoolProp_8CoolProp_14PySpinodalData_delta, (char *)0, 0},
  {(char *)"M1", __pyx_getprop_8CoolProp_8CoolProp_14PySpinodalData_M1, __pyx_setprop_8CoolProp_8CoolProp_14PySpinodalData_M1, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_8CoolProp_8CoolProp_PySpinodalData = {
  PyVarObject_HEAD_INIT(0, 0)
  "CoolProp.CoolProp.PySpinodalData", /*tp_name*/
  sizeof(struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8CoolProp_8CoolProp_PySpinodalData, /*tp_dealloc*/
  0, /*tp_print*/
  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_8CoolProp_8CoolProp_PySpinodalData, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8CoolProp_8CoolProp_PySpinodalData, /*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_8CoolProp_8CoolProp_PySpinodalData, /*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
};
static struct __pyx_vtabstruct_8CoolProp_8CoolProp_AbstractState __pyx_vtable_8CoolProp_8CoolProp_AbstractState;

static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_AbstractState(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *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_8CoolProp_8CoolProp_AbstractState *)o);
  p->__pyx_vtab = __pyx_vtabptr_8CoolProp_8CoolProp_AbstractState;
  if (unlikely(__pyx_pw_8CoolProp_8CoolProp_13AbstractState_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_8CoolProp_8CoolProp_AbstractState(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
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_8CoolProp_8CoolProp_13AbstractState_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_8CoolProp_8CoolProp_AbstractState[] = {
  {"fluid_param_string", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_5fluid_param_string, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_4fluid_param_string},
  {"name", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_7name, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_6name},
  {"backend_name", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_9backend_name, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_8backend_name},
  {"fluid_names", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_11fluid_names, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_10fluid_names},
  {"phase", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_13phase, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_12phase},
  {"specify_phase", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_15specify_phase, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_14specify_phase},
  {"unspecify_phase", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_17unspecify_phase, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_16unspecify_phase},
  {"change_EOS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_19change_EOS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_18change_EOS},
  {"apply_simple_mixing_rule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_21apply_simple_mixing_rule, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_20apply_simple_mixing_rule},
  {"get_binary_interaction_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_29get_binary_interaction_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_28get_binary_interaction_string},
  {"set_fluid_parameter_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_31set_fluid_parameter_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_30set_fluid_parameter_double},
  {"get_fluid_parameter_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_33get_fluid_parameter_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_32get_fluid_parameter_double},
  {"update", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_35update, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_34update},
  {"update_with_guesses", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_37update_with_guesses, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_36update_with_guesses},
  {"set_mole_fractions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_39set_mole_fractions, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_38set_mole_fractions},
  {"set_mass_fractions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_41set_mass_fractions, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_40set_mass_fractions},
  {"set_volu_fractions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_43set_volu_fractions, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_42set_volu_fractions},
  {"get_mole_fractions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_45get_mole_fractions, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_44get_mole_fractions},
  {"get_mass_fractions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_47get_mass_fractions, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_46get_mass_fractions},
  {"Tmin", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_49Tmin, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_48Tmin},
  {"Tmax", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_51Tmax, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_50Tmax},
  {"pmax", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_53pmax, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_52pmax},
  {"Ttriple", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_55Ttriple, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_54Ttriple},
  {"T_critical", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_57T_critical, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_56T_critical},
  {"rhomass_critical", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_59rhomass_critical, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_58rhomass_critical},
  {"rhomolar_critical", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_61rhomolar_critical, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_60rhomolar_critical},
  {"p_critical", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_63p_critical, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_62p_critical},
  {"all_critical_points", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_65all_critical_points, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_64all_critical_points},
  {"criticality_contour_values", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_67criticality_contour_values, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_66criticality_contour_values},
  {"build_spinodal", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_69build_spinodal, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_68build_spinodal},
  {"get_spinodal_data", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_71get_spinodal_data, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_70get_spinodal_data},
  {"T_reducing", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_73T_reducing, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_72T_reducing},
  {"rhomolar_reducing", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_75rhomolar_reducing, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_74rhomolar_reducing},
  {"rhomass_reducing", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_77rhomass_reducing, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_76rhomass_reducing},
  {"tangent_plane_distance", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_79tangent_plane_distance, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_78tangent_plane_distance},
  {"get_fluid_constant", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_81get_fluid_constant, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_80get_fluid_constant},
  {"keyed_output", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_83keyed_output, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_82keyed_output},
  {"trivial_keyed_output", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_85trivial_keyed_output, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_84trivial_keyed_output},
  {"saturated_liquid_keyed_output", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_87saturated_liquid_keyed_output, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_86saturated_liquid_keyed_output},
  {"saturated_vapor_keyed_output", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_89saturated_vapor_keyed_output, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_88saturated_vapor_keyed_output},
  {"T", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_91T, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_90T},
  {"p", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_93p, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_92p},
  {"Q", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_95Q, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_94Q},
  {"rhomolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_97rhomolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_96rhomolar},
  {"rhomass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_99rhomass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_98rhomass},
  {"hmolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_101hmolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_100hmolar},
  {"hmass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_103hmass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_102hmass},
  {"umolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_105umolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_104umolar},
  {"umass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_107umass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_106umass},
  {"smolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_109smolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_108smolar},
  {"smass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_111smass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_110smass},
  {"cpmolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_113cpmolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_112cpmolar},
  {"cpmass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_115cpmass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_114cpmass},
  {"cp0molar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_117cp0molar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_116cp0molar},
  {"cp0mass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_119cp0mass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_118cp0mass},
  {"cvmolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_121cvmolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_120cvmolar},
  {"cvmass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_123cvmass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_122cvmass},
  {"gibbsmass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_125gibbsmass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_124gibbsmass},
  {"gibbsmolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_127gibbsmolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_126gibbsmolar},
  {"helmholtzmass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_129helmholtzmass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_128helmholtzmass},
  {"helmholtzmolar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_131helmholtzmolar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_130helmholtzmolar},
  {"tau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_133tau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_132tau},
  {"delta", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_135delta, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_134delta},
  {"speed_sound", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_137speed_sound, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_136speed_sound},
  {"molar_mass", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_139molar_mass, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_138molar_mass},
  {"acentric_factor", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_141acentric_factor, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_140acentric_factor},
  {"gas_constant", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_143gas_constant, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_142gas_constant},
  {"viscosity", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_145viscosity, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_144viscosity},
  {"conductivity", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_147conductivity, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_146conductivity},
  {"surface_tension", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_149surface_tension, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_148surface_tension},
  {"Prandtl", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_151Prandtl, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_150Prandtl},
  {"Bvirial", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_153Bvirial, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_152Bvirial},
  {"Cvirial", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_155Cvirial, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_154Cvirial},
  {"fundamental_derivative_of_gas_dynamics", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_157fundamental_derivative_of_gas_dynamics, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_156fundamental_derivative_of_gas_dynamics},
  {"PIP", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_159PIP, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_158PIP},
  {"isobaric_expansion_coefficient", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_161isobaric_expansion_coefficient, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_160isobaric_expansion_coefficient},
  {"isothermal_compressibility", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_163isothermal_compressibility, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_162isothermal_compressibility},
  {"fugacity", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_165fugacity, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_164fugacity},
  {"fugacity_coefficient", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_167fugacity_coefficient, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_166fugacity_coefficient},
  {"chemical_potential", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_169chemical_potential, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_168chemical_potential},
  {"mole_fractions_liquid", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_171mole_fractions_liquid, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_170mole_fractions_liquid},
  {"mole_fractions_vapor", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_173mole_fractions_vapor, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_172mole_fractions_vapor},
  {"true_critical_point", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_175true_critical_point, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_174true_critical_point},
  {"conformal_state", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_177conformal_state, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_176conformal_state},
  {"conductivity_contributions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_179conductivity_contributions, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_178conductivity_contributions},
  {"viscosity_contributions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_181viscosity_contributions, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_180viscosity_contributions},
  {"helmholtzmolar_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_183helmholtzmolar_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_182helmholtzmolar_excess},
  {"helmholtzmass_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_185helmholtzmass_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_184helmholtzmass_excess},
  {"gibbsmolar_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_187gibbsmolar_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_186gibbsmolar_excess},
  {"gibbsmass_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_189gibbsmass_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_188gibbsmass_excess},
  {"umolar_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_191umolar_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_190umolar_excess},
  {"umass_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_193umass_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_192umass_excess},
  {"hmolar_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_195hmolar_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_194hmolar_excess},
  {"hmass_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_197hmass_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_196hmass_excess},
  {"smolar_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_199smolar_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_198smolar_excess},
  {"smass_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_201smass_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_200smass_excess},
  {"volumemolar_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_203volumemolar_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_202volumemolar_excess},
  {"volumemass_excess", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_205volumemass_excess, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_204volumemass_excess},
  {"first_partial_deriv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_207first_partial_deriv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_206first_partial_deriv},
  {"second_partial_deriv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_209second_partial_deriv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_208second_partial_deriv},
  {"first_saturation_deriv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_211first_saturation_deriv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_210first_saturation_deriv},
  {"second_saturation_deriv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_213second_saturation_deriv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_212second_saturation_deriv},
  {"first_two_phase_deriv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_215first_two_phase_deriv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_214first_two_phase_deriv},
  {"second_two_phase_deriv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_217second_two_phase_deriv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_216second_two_phase_deriv},
  {"first_two_phase_deriv_splined", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_219first_two_phase_deriv_splined, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_218first_two_phase_deriv_splined},
  {"has_melting_line", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_221has_melting_line, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_220has_melting_line},
  {"melting_line", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_223melting_line, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_222melting_line},
  {"saturation_ancillary", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_225saturation_ancillary, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_224saturation_ancillary},
  {"build_phase_envelope", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_227build_phase_envelope, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_226build_phase_envelope},
  {"get_phase_envelope_data", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_229get_phase_envelope_data, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_228get_phase_envelope_data},
  {"ideal_curve", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_231ideal_curve, METH_O, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_230ideal_curve},
  {"alpha0", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_233alpha0, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_232alpha0},
  {"dalpha0_dDelta", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_235dalpha0_dDelta, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_234dalpha0_dDelta},
  {"dalpha0_dTau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_237dalpha0_dTau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_236dalpha0_dTau},
  {"d2alpha0_dDelta2", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_239d2alpha0_dDelta2, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_238d2alpha0_dDelta2},
  {"d2alpha0_dDelta_dTau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_241d2alpha0_dDelta_dTau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_240d2alpha0_dDelta_dTau},
  {"d2alpha0_dTau2", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_243d2alpha0_dTau2, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_242d2alpha0_dTau2},
  {"d3alpha0_dTau3", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_245d3alpha0_dTau3, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_244d3alpha0_dTau3},
  {"d3alpha0_dDelta_dTau2", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_247d3alpha0_dDelta_dTau2, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_246d3alpha0_dDelta_dTau2},
  {"d3alpha0_dDelta2_dTau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_249d3alpha0_dDelta2_dTau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_248d3alpha0_dDelta2_dTau},
  {"d3alpha0_dDelta3", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_251d3alpha0_dDelta3, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_250d3alpha0_dDelta3},
  {"alphar", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_253alphar, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_252alphar},
  {"dalphar_dDelta", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_255dalphar_dDelta, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_254dalphar_dDelta},
  {"dalphar_dTau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_257dalphar_dTau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_256dalphar_dTau},
  {"d2alphar_dDelta2", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_259d2alphar_dDelta2, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_258d2alphar_dDelta2},
  {"d2alphar_dDelta_dTau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_261d2alphar_dDelta_dTau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_260d2alphar_dDelta_dTau},
  {"d2alphar_dTau2", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_263d2alphar_dTau2, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_262d2alphar_dTau2},
  {"d3alphar_dTau3", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_265d3alphar_dTau3, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_264d3alphar_dTau3},
  {"d3alphar_dDelta_dTau2", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_267d3alphar_dDelta_dTau2, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_266d3alphar_dDelta_dTau2},
  {"d3alphar_dDelta2_dTau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_269d3alphar_dDelta2_dTau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_268d3alphar_dDelta2_dTau},
  {"d3alphar_dDelta3", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_271d3alphar_dDelta3, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_270d3alphar_dDelta3},
  {"d4alphar_dTau4", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_273d4alphar_dTau4, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_272d4alphar_dTau4},
  {"d4alphar_dDelta_dTau3", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_275d4alphar_dDelta_dTau3, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_274d4alphar_dDelta_dTau3},
  {"d4alphar_dDelta2_dTau2", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_277d4alphar_dDelta2_dTau2, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_276d4alphar_dDelta2_dTau2},
  {"d4alphar_dDelta3_dTau", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_279d4alphar_dDelta3_dTau, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_278d4alphar_dDelta3_dTau},
  {"d4alphar_dDelta4", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_281d4alphar_dDelta4, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_13AbstractState_280d4alphar_dDelta4},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_331__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13AbstractState_333__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_8CoolProp_8CoolProp_AbstractState = {
  PyVarObject_HEAD_INIT(0, 0)
  "CoolProp.CoolProp.AbstractState", /*tp_name*/
  sizeof(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8CoolProp_8CoolProp_AbstractState, /*tp_dealloc*/
  0, /*tp_print*/
  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*/
  "\n    This class is a one-to-one python wrapper of the :cpapi:`AbstractState` class\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8CoolProp_8CoolProp_AbstractState, /*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_8CoolProp_8CoolProp_AbstractState, /*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
};
static struct __pyx_vtabstruct_8CoolProp_8CoolProp_State __pyx_vtable_8CoolProp_8CoolProp_State;

static PyObject *__pyx_tp_new_8CoolProp_8CoolProp_State(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_8CoolProp_8CoolProp_State *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_8CoolProp_8CoolProp_State *)o);
  p->__pyx_vtab = __pyx_vtabptr_8CoolProp_8CoolProp_State;
  p->pAS = ((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)Py_None); Py_INCREF(Py_None);
  p->Fluid = ((PyObject*)Py_None); Py_INCREF(Py_None);
  p->phase = ((PyObject*)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8CoolProp_8CoolProp_State(PyObject *o) {
  struct __pyx_obj_8CoolProp_8CoolProp_State *p = (struct __pyx_obj_8CoolProp_8CoolProp_State *)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);
  Py_CLEAR(p->pAS);
  Py_CLEAR(p->Fluid);
  Py_CLEAR(p->phase);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_8CoolProp_8CoolProp_State(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8CoolProp_8CoolProp_State *p = (struct __pyx_obj_8CoolProp_8CoolProp_State *)o;
  if (p->pAS) {
    e = (*v)(((PyObject *)p->pAS), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8CoolProp_8CoolProp_State(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8CoolProp_8CoolProp_State *p = (struct __pyx_obj_8CoolProp_8CoolProp_State *)o;
  tmp = ((PyObject*)p->pAS);
  p->pAS = ((struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_Q(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_1Q_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_MM(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_2MM_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_rho(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_3rho_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_p(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_1p_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_T(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_1T_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_h(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_1h_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_u(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_1u_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_s(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_1s_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_cp0(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_3cp0_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_cp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_2cp_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_cv(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_2cv_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_visc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_4visc_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_k(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_1k_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_Tsat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_4Tsat_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_superheat(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_9superheat_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_subcooling(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_10subcooling_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_Prandtl(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_7Prandtl_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_dpdT(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_4dpdT_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_Fluid(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_5Fluid_1__get__(o);
}

static PyObject *__pyx_getprop_8CoolProp_8CoolProp_5State_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8CoolProp_8CoolProp_5State_5phase_1__get__(o);
}

static PyMethodDef __pyx_methods_8CoolProp_8CoolProp_State[] = {
  {"set_Fluid", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_5State_3set_Fluid, METH_VARARGS|METH_KEYWORDS, 0},
  {"update_ph", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_5State_5update_ph, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_5State_4update_ph},
  {"update_Trho", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_5State_7update_Trho, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_5State_6update_Trho},
  {"update", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_9update, METH_O, __pyx_doc_8CoolProp_8CoolProp_5State_8update},
  {"Phase", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_11Phase, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_10Phase},
  {"Props", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_13Props, METH_O, 0},
  {"get_Q", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_15get_Q, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_14get_Q},
  {"get_MM", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_17get_MM, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_16get_MM},
  {"get_rho", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_19get_rho, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_18get_rho},
  {"get_p", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_21get_p, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_20get_p},
  {"get_T", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_23get_T, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_22get_T},
  {"get_h", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_25get_h, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_24get_h},
  {"get_u", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_27get_u, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_26get_u},
  {"get_s", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_29get_s, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_28get_s},
  {"get_cp0", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_31get_cp0, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_30get_cp0},
  {"get_cp", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_33get_cp, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_32get_cp},
  {"get_cv", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_35get_cv, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_34get_cv},
  {"get_speed_sound", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_37get_speed_sound, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_36get_speed_sound},
  {"get_visc", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_39get_visc, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_38get_visc},
  {"get_cond", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_41get_cond, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_40get_cond},
  {"get_Tsat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_5State_43get_Tsat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_5State_42get_Tsat},
  {"get_superheat", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_45get_superheat, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_44get_superheat},
  {"get_subcooling", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_47get_subcooling, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_46get_subcooling},
  {"get_dpdT", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_49get_dpdT, METH_NOARGS, 0},
  {"speed_test", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_51speed_test, METH_O, 0},
  {"copy", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_55copy, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_5State_54copy},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_57__reduce_cython__, METH_NOARGS, 0},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_5State_59__setstate_cython__, METH_O, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8CoolProp_8CoolProp_State[] = {
  {(char *)"Q", __pyx_getprop_8CoolProp_8CoolProp_5State_Q, 0, (char *)" The quality [-] ", 0},
  {(char *)"MM", __pyx_getprop_8CoolProp_8CoolProp_5State_MM, 0, (char *)" The molar mass [kg/kmol] or [g/mol] ", 0},
  {(char *)"rho", __pyx_getprop_8CoolProp_8CoolProp_5State_rho, 0, (char *)" The density [kg/m^3] ", 0},
  {(char *)"p", __pyx_getprop_8CoolProp_8CoolProp_5State_p, 0, (char *)" The pressure [kPa] ", 0},
  {(char *)"T", __pyx_getprop_8CoolProp_8CoolProp_5State_T, 0, (char *)" The temperature [K] ", 0},
  {(char *)"h", __pyx_getprop_8CoolProp_8CoolProp_5State_h, 0, (char *)" The specific enthalpy [kJ/kg] ", 0},
  {(char *)"u", __pyx_getprop_8CoolProp_8CoolProp_5State_u, 0, (char *)" The internal energy [kJ/kg] ", 0},
  {(char *)"s", __pyx_getprop_8CoolProp_8CoolProp_5State_s, 0, (char *)" The specific enthalpy [kJ/kg/K] ", 0},
  {(char *)"cp0", __pyx_getprop_8CoolProp_8CoolProp_5State_cp0, 0, (char *)" The ideal-gas specific heat at constant pressure  [kJ/kg/K] ", 0},
  {(char *)"cp", __pyx_getprop_8CoolProp_8CoolProp_5State_cp, 0, (char *)" The specific heat at constant pressure  [kJ/kg/K] ", 0},
  {(char *)"cv", __pyx_getprop_8CoolProp_8CoolProp_5State_cv, 0, (char *)" The specific heat at constant volume  [kJ/kg/K] ", 0},
  {(char *)"visc", __pyx_getprop_8CoolProp_8CoolProp_5State_visc, 0, (char *)" The viscosity, in [Pa-s]", 0},
  {(char *)"k", __pyx_getprop_8CoolProp_8CoolProp_5State_k, 0, (char *)" The thermal conductivity, in [kW/m/K]", 0},
  {(char *)"Tsat", __pyx_getprop_8CoolProp_8CoolProp_5State_Tsat, 0, (char *)" The saturation temperature (dew) for the given pressure, in [K]", 0},
  {(char *)"superheat", __pyx_getprop_8CoolProp_8CoolProp_5State_superheat, 0, (char *)"\n        The amount of superheat above the saturation temperature corresponding to the pressure, in [K]\n\n        Returns ``None`` if pressure is not within the two-phase pressure range\n        ", 0},
  {(char *)"subcooling", __pyx_getprop_8CoolProp_8CoolProp_5State_subcooling, 0, (char *)"\n        The amount of subcooling below the saturation temperature corresponding to the pressure, in [K]\n\n        Returns ``None`` if pressure is not within the two-phase pressure range\n        ", 0},
  {(char *)"Prandtl", __pyx_getprop_8CoolProp_8CoolProp_5State_Prandtl, 0, (char *)" The Prandtl number (cp*mu/k) [-] ", 0},
  {(char *)"dpdT", __pyx_getprop_8CoolProp_8CoolProp_5State_dpdT, 0, (char *)0, 0},
  {(char *)"Fluid", __pyx_getprop_8CoolProp_8CoolProp_5State_Fluid, 0, (char *)0, 0},
  {(char *)"phase", __pyx_getprop_8CoolProp_8CoolProp_5State_phase, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_8CoolProp_8CoolProp_State = {
  PyVarObject_HEAD_INIT(0, 0)
  "CoolProp.CoolProp.State", /*tp_name*/
  sizeof(struct __pyx_obj_8CoolProp_8CoolProp_State), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8CoolProp_8CoolProp_State, /*tp_dealloc*/
  0, /*tp_print*/
  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*/
  __pyx_pw_8CoolProp_8CoolProp_5State_53__str__, /*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    A class that contains all the code that represents a thermodynamic state\n\n    .. warning::\n\n        This class is deprecated.  You should use :py:class:`CoolProp.AbstractState` instead\n\n    The motivation for this class is that it is useful to be able to define the\n    state once using whatever state inputs you like and then be able to calculate\n    other thermodynamic properties with the minimum of computational work.\n\n    Let's suppose that you have inputs of pressure and temperature and you want\n    to calculate the enthalpy and pressure.  Since the Equations of State are\n    all explicit in temperature and density, each time you call something like::\n\n        h = PropsSI('H','T',T','P',P,Fluid)\n        s = PropsSI('S','T',T','P',P,Fluid)\n\n    the solver is used to carry out the T-P flash calculation. And if you wanted\n    entropy as well you could either intermediately calculate ``T``, ``rho`` and then use\n    ``T``, ``rho`` in the EOS in a manner like::\n\n        rho = PropsSI('D','T',T','P',P,Fluid)\n        h = PropsSI('H','T',T','D',rho,Fluid)\n        s = PropsSI('S','T',T','D',rho,Fluid)\n\n    Instead in this class all that is handled internally. So the call to update\n    sets the internal variables in the most computationally efficient way possible\n    ", /*tp_doc*/
  __pyx_tp_traverse_8CoolProp_8CoolProp_State, /*tp_traverse*/
  __pyx_tp_clear_8CoolProp_8CoolProp_State, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8CoolProp_8CoolProp_State, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8CoolProp_8CoolProp_State, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_8CoolProp_8CoolProp_5State_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8CoolProp_8CoolProp_State, /*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
};

static PyMethodDef __pyx_methods[] = {
  {"HAPropsSI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_1HAPropsSI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_HAPropsSI},
  {"HAProps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_3HAProps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_2HAProps},
  {"HAProps_Aux", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_5HAProps_Aux, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_4HAProps_Aux},
  {"cair_sat", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_7cair_sat, METH_O, __pyx_doc_8CoolProp_8CoolProp_6cair_sat},
  {"generate_update_pair", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_11generate_update_pair, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_10generate_update_pair},
  {"get_config_as_json_string", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_13get_config_as_json_string, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_12get_config_as_json_string},
  {"config_key_description", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_15config_key_description, METH_O, __pyx_doc_8CoolProp_8CoolProp_14config_key_description},
  {"set_config_as_json_string", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_17set_config_as_json_string, METH_O, __pyx_doc_8CoolProp_8CoolProp_16set_config_as_json_string},
  {"set_config_double", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_19set_config_double, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_18set_config_double},
  {"set_config_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_21set_config_string, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_20set_config_string},
  {"set_config_bool", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_23set_config_bool, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_22set_config_bool},
  {"get_config_double", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_25get_config_double, METH_O, __pyx_doc_8CoolProp_8CoolProp_24get_config_double},
  {"get_config_string", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_27get_config_string, METH_O, __pyx_doc_8CoolProp_8CoolProp_26get_config_string},
  {"get_config_bool", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_29get_config_bool, METH_O, __pyx_doc_8CoolProp_8CoolProp_28get_config_bool},
  {"get_parameter_index", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_31get_parameter_index, METH_O, 0},
  {"get_phase_index", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_33get_phase_index, METH_O, 0},
  {"get_parameter_information", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_35get_parameter_information, METH_VARARGS|METH_KEYWORDS, 0},
  {"get_mixture_binary_pair_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_37get_mixture_binary_pair_data, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_36get_mixture_binary_pair_data},
  {"set_mixture_binary_pair_data", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_39set_mixture_binary_pair_data, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_38set_mixture_binary_pair_data},
  {"add_fluids_as_JSON", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_41add_fluids_as_JSON, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_40add_fluids_as_JSON},
  {"get_global_param_string", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_43get_global_param_string, METH_O, 0},
  {"is_trivial_parameter", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_45is_trivial_parameter, METH_O, 0},
  {"get_fluid_param_string", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_47get_fluid_param_string, METH_VARARGS|METH_KEYWORDS, 0},
  {"apply_simple_mixing_rule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_49apply_simple_mixing_rule, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_48apply_simple_mixing_rule},
  {"set_departure_functions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_51set_departure_functions, METH_O, __pyx_doc_8CoolProp_8CoolProp_50set_departure_functions},
  {"saturation_ancillary", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_53saturation_ancillary, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_52saturation_ancillary},
  {"__Props_err1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_55__Props_err1, METH_VARARGS|METH_KEYWORDS, 0},
  {"__Props_err2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_57__Props_err2, METH_VARARGS|METH_KEYWORDS, 0},
  {"Props", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_59Props, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_58Props},
  {"PhaseSI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_61PhaseSI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_60PhaseSI},
  {"PropsSI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_63PropsSI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_62PropsSI},
  {"FluidsList", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_65FluidsList, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_64FluidsList},
  {"get_aliases", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_67get_aliases, METH_O, __pyx_doc_8CoolProp_8CoolProp_66get_aliases},
  {"get_REFPROPname", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_69get_REFPROPname, METH_O, __pyx_doc_8CoolProp_8CoolProp_68get_REFPROPname},
  {"get_BibTeXKey", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8CoolProp_8CoolProp_71get_BibTeXKey, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8CoolProp_8CoolProp_70get_BibTeXKey},
  {"get_errstr", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_73get_errstr, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_72get_errstr},
  {"set_debug_level", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_75set_debug_level, METH_O, __pyx_doc_8CoolProp_8CoolProp_74set_debug_level},
  {"get_debug_level", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_77get_debug_level, METH_NOARGS, __pyx_doc_8CoolProp_8CoolProp_76get_debug_level},
  {"extract_backend", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_79extract_backend, METH_O, __pyx_doc_8CoolProp_8CoolProp_78extract_backend},
  {"extract_fractions", (PyCFunction)__pyx_pw_8CoolProp_8CoolProp_81extract_fractions, METH_O, __pyx_doc_8CoolProp_8CoolProp_80extract_fractions},
  {0, 0, 0, 0}
};

static int __pyx_import_star_set(PyObject *o, PyObject* py_name, char *name) {
  static const char* internal_type_names[] = {
    "AbstractState",
    "CoolPropDbl",
    "PyCriticalState",
    "PyGuessesStructure",
    "PyPhaseEnvelopeData",
    "PySpinodalData",
    "State",
    "X",
    "__Pyx_memviewslice",
    "__pyx_ctuple_33b23__std__in_vector__lAngdouble__rAng__and_std__in_vector__lAngdouble__rAng__and_std__in_vector__lAngdouble__rAng__etc",
    "__pyx_ctuple_33b23__std__in_vector__lAngdouble__rAng__and_std__in_vector__lAngdouble__rAng__and_std__in_vector__lAngdouble__rAng__etc_struct",
    "__pyx_ctuple_38631__std__in_string__and_std__in_string__and_std__in_string__and_double__etc",
    "__pyx_ctuple_38631__std__in_string__and_std__in_string__and_std__in_string__and_double__etc_struct",
    "__pyx_ctuple_3f9cc__CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__and_double__etc",
    "__pyx_ctuple_3f9cc__CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__and_double__etc_struct",
    "__pyx_ctuple_5b513__CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__etc",
    "__pyx_ctuple_5b513__CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__etc_struct",
    "__pyx_ctuple_62c45__double__and_double__and_double__and_double__and_double__and_bool__etc",
    "__pyx_ctuple_62c45__double__and_double__and_double__and_double__and_double__and_bool__etc_struct",
    "__pyx_ctuple_73812__std__in_vector__lAngdouble__rAng__and_std__in_vector__lAngdouble__rAng__etc",
    "__pyx_ctuple_73812__std__in_vector__lAngdouble__rAng__and_std__in_vector__lAngdouble__rAng__etc_struct",
    "__pyx_ctuple_8967__CoolProp__in_parameters__and_int__and_CoolProp__in_parameters__and_double__etc",
    "__pyx_ctuple_8967__CoolProp__in_parameters__and_int__and_CoolProp__in_parameters__and_double__etc_struct",
    "__pyx_ctuple_89f2____dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__and___dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__etc",
    "__pyx_ctuple_89f2____dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__and___dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__etc_struct",
    "__pyx_ctuple_96609__CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__etc",
    "__pyx_ctuple_96609__CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__and_CoolProp__in_parameters__etc_struct",
    "__pyx_ctuple_CoolProp__in_input_pairs__and_double__and_double",
    "__pyx_ctuple_CoolProp__in_input_pairs__and_double__and_double_struct",
    "__pyx_ctuple_CoolProp__in_parameters",
    "__pyx_ctuple_CoolProp__in_parameters__and_CoolProp__in_parameters",
    "__pyx_ctuple_CoolProp__in_parameters__and_CoolProp__in_parameters_struct",
    "__pyx_ctuple_CoolProp__in_parameters_struct",
    "__pyx_ctuple_CoolProp__in_phases",
    "__pyx_ctuple_CoolProp__in_phases_struct",
    "__pyx_ctuple_Py_ssize_t",
    "__pyx_ctuple_Py_ssize_t_struct",
    "__pyx_ctuple_ced34__double__and_double__and_std__in_vector__lAngdouble__rAng__and_double__etc",
    "__pyx_ctuple_ced34__double__and_double__and_std__in_vector__lAngdouble__rAng__and_double__etc_struct",
    "__pyx_ctuple_char__ptr__and_char__ptr__and_std__in_string",
    "__pyx_ctuple_char__ptr__and_char__ptr__and_std__in_string__and_double",
    "__pyx_ctuple_char__ptr__and_char__ptr__and_std__in_string__and_double_struct",
    "__pyx_ctuple_char__ptr__and_char__ptr__and_std__in_string_struct",
    "__pyx_ctuple_db34a__std__in_string__and___dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__and___dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__etc",
    "__pyx_ctuple_db34a__std__in_string__and___dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__and___dunderpyx_t_8CoolProp_8typedefs_CoolPropDbl__etc_struct",
    "__pyx_ctuple_double",
    "__pyx_ctuple_double__and_double",
    "__pyx_ctuple_double__and_double_struct",
    "__pyx_ctuple_double_struct",
    "__pyx_ctuple_f2a28__char__ptr__and_char__ptr__and_std__in_string__and_std__in_string__etc",
    "__pyx_ctuple_f2a28__char__ptr__and_char__ptr__and_std__in_string__and_std__in_string__etc_struct",
    "__pyx_ctuple_fd9e6__std__in_string__and_std__in_string__and_std__in_string__and_std__in_string__etc",
    "__pyx_ctuple_fd9e6__std__in_string__and_std__in_string__and_std__in_string__and_std__in_string__etc_struct",
    "__pyx_ctuple_int",
    "__pyx_ctuple_int__and_int__and_double",
    "__pyx_ctuple_int__and_int__and_double_struct",
    "__pyx_ctuple_int__and_int__and_std__in_string",
    "__pyx_ctuple_int__and_int__and_std__in_string__and_double",
    "__pyx_ctuple_int__and_int__and_std__in_string__and_double_struct",
    "__pyx_ctuple_int__and_int__and_std__in_string__and_std__in_string",
    "__pyx_ctuple_int__and_int__and_std__in_string__and_std__in_string_struct",
    "__pyx_ctuple_int__and_int__and_std__in_string_struct",
    "__pyx_ctuple_int_struct",
    "__pyx_ctuple_long__and_long__and_std__in_string",
    "__pyx_ctuple_long__and_long__and_std__in_string__and_double",
    "__pyx_ctuple_long__and_long__and_std__in_string__and_double_struct",
    "__pyx_ctuple_long__and_long__and_std__in_string__and_std__in_string",
    "__pyx_ctuple_long__and_long__and_std__in_string__and_std__in_string_struct",
    "__pyx_ctuple_long__and_long__and_std__in_string_struct",
    "__pyx_ctuple_short__and_short__and_std__in_string",
    "__pyx_ctuple_short__and_short__and_std__in_string__and_double",
    "__pyx_ctuple_short__and_short__and_std__in_string__and_double_struct",
    "__pyx_ctuple_short__and_short__and_std__in_string__and_std__in_string",
    "__pyx_ctuple_short__and_short__and_std__in_string__and_std__in_string_struct",
    "__pyx_ctuple_short__and_short__and_std__in_string_struct",
    "__pyx_ctuple_size_t",
    "__pyx_ctuple_size_t__and_CoolProp__in_parameters",
    "__pyx_ctuple_size_t__and_CoolProp__in_parameters_struct",
    "__pyx_ctuple_size_t__and_size_t__and_std__in_string",
    "__pyx_ctuple_size_t__and_size_t__and_std__in_string_struct",
    "__pyx_ctuple_size_t__and_std__in_string",
    "__pyx_ctuple_size_t__and_std__in_string__and_double",
    "__pyx_ctuple_size_t__and_std__in_string__and_double_struct",
    "__pyx_ctuple_size_t__and_std__in_string_struct",
    "__pyx_ctuple_size_t_struct",
    "__pyx_ctuple_std__in_string",
    "__pyx_ctuple_std__in_string__and_std__in_string",
    "__pyx_ctuple_std__in_string__and_std__in_string__and_std__in_string",
    "__pyx_ctuple_std__in_string__and_std__in_string__and_std__in_string_struct",
    "__pyx_ctuple_std__in_string__and_std__in_string_struct",
    "__pyx_ctuple_std__in_string_struct",
    "__pyx_ctuple_std__in_vector__lAngdouble__rAng",
    "__pyx_ctuple_std__in_vector__lAngdouble__rAng_struct",
    "__pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance",
    "__pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat",
    "__pyx_opt_args_8CoolProp_8CoolProp_Props",
    "__pyx_opt_args_8CoolProp_8CoolProp_PropsSI",
    "bool",
    "configuration_keys",
    "fluid_types",
    "input_pairs",
    "parameters",
    "phases",
    "string",
    "string_or_size_t",
    "vector",
    0
  };
  const char** type_name = internal_type_names;
  while (*type_name) {
    if (__Pyx_StrEq(name, *type_name)) {
      PyErr_Format(PyExc_TypeError, "Cannot overwrite C type %s", name);
      goto bad;
    }
    type_name++;
  }
  if (0);
  else if (__Pyx_StrEq(name, "paras")) {
    if (!(likely(PyDict_CheckExact(o))||((o) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(o)->tp_name), 0))) __PYX_ERR(0, 591, __pyx_L2_error);
    Py_INCREF(o);
    Py_DECREF(__pyx_v_8CoolProp_8CoolProp_paras);
    __pyx_v_8CoolProp_8CoolProp_paras = ((PyObject*)o);
  }
  else if (__Pyx_StrEq(name, "paras_inverse")) {
    if (!(likely(PyDict_CheckExact(o))||((o) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(o)->tp_name), 0))) __PYX_ERR(0, 607, __pyx_L2_error);
    Py_INCREF(o);
    Py_DECREF(__pyx_v_8CoolProp_8CoolProp_paras_inverse);
    __pyx_v_8CoolProp_8CoolProp_paras_inverse = ((PyObject*)o);
  }
  else {
    if (PyObject_SetAttr(__pyx_m, py_name, o) < 0) goto bad;
  }
  return 0;
  __pyx_L2_error:;
  __Pyx_AddTraceback("CoolProp.CoolProp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  bad:
  return -1;
}

static int
__Pyx_import_all_from(PyObject *locals, PyObject *v)
{
    PyObject *all = PyObject_GetAttrString(v, "__all__");
    PyObject *dict, *name, *value;
    int skip_leading_underscores = 0;
    int pos, err;
    if (all == NULL) {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError))
            return -1;
        PyErr_Clear();
        dict = PyObject_GetAttrString(v, "__dict__");
        if (dict == NULL) {
            if (!PyErr_ExceptionMatches(PyExc_AttributeError))
                return -1;
            PyErr_SetString(PyExc_ImportError,
            "from-import-* object has no __dict__ and no __all__");
            return -1;
        }
#if PY_MAJOR_VERSION < 3
        all = PyObject_CallMethod(dict, (char *)"keys", NULL);
#else
        all = PyMapping_Keys(dict);
#endif
        Py_DECREF(dict);
        if (all == NULL)
            return -1;
        skip_leading_underscores = 1;
    }
    for (pos = 0, err = 0; ; pos++) {
        name = PySequence_GetItem(all, pos);
        if (name == NULL) {
            if (!PyErr_ExceptionMatches(PyExc_IndexError))
                err = -1;
            else
                PyErr_Clear();
            break;
        }
        if (skip_leading_underscores &&
#if PY_MAJOR_VERSION < 3
            PyString_Check(name) &&
            PyString_AS_STRING(name)[0] == '_')
#else
            PyUnicode_Check(name) &&
            PyUnicode_AS_UNICODE(name)[0] == '_')
#endif
        {
            Py_DECREF(name);
            continue;
        }
        value = PyObject_GetAttr(v, name);
        if (value == NULL)
            err = -1;
        else if (PyDict_CheckExact(locals))
            err = PyDict_SetItem(locals, name, value);
        else
            err = PyObject_SetItem(locals, name, value);
        Py_DECREF(name);
        Py_XDECREF(value);
        if (err != 0)
            break;
    }
    Py_DECREF(all);
    return err;
}
static int __pyx_import_star(PyObject* m) {
    int i;
    int ret = -1;
    char* s;
    PyObject *locals = 0;
    PyObject *list = 0;
#if PY_MAJOR_VERSION >= 3
    PyObject *utf8_name = 0;
#endif
    PyObject *name;
    PyObject *item;
    locals = PyDict_New();              if (!locals) goto bad;
    if (__Pyx_import_all_from(locals, m) < 0) goto bad;
    list = PyDict_Items(locals);        if (!list) goto bad;
    for(i=0; i<PyList_GET_SIZE(list); i++) {
        name = PyTuple_GET_ITEM(PyList_GET_ITEM(list, i), 0);
        item = PyTuple_GET_ITEM(PyList_GET_ITEM(list, i), 1);
#if PY_MAJOR_VERSION >= 3
        utf8_name = PyUnicode_AsUTF8String(name);
        if (!utf8_name) goto bad;
        s = PyBytes_AS_STRING(utf8_name);
        if (__pyx_import_star_set(item, name, s) < 0) goto bad;
        Py_DECREF(utf8_name); utf8_name = 0;
#else
        s = PyString_AsString(name);
        if (!s) goto bad;
        if (__pyx_import_star_set(item, name, s) < 0) goto bad;
#endif
    }
    ret = 0;
bad:
    Py_XDECREF(locals);
    Py_XDECREF(list);
#if PY_MAJOR_VERSION >= 3
    Py_XDECREF(utf8_name);
#endif
    return ret;
}



#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_CoolProp(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_CoolProp},
  {0, NULL}
};
#endif

static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    "CoolProp",
    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_AbstractState, __pyx_k_AbstractState, sizeof(__pyx_k_AbstractState), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_0get_bi, __pyx_k_AbstractState___pyx_fuse_0get_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_0get_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_0set_bi, __pyx_k_AbstractState___pyx_fuse_0set_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_0set_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_0set_bi_2, __pyx_k_AbstractState___pyx_fuse_0set_bi_2, sizeof(__pyx_k_AbstractState___pyx_fuse_0set_bi_2), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_1get_bi, __pyx_k_AbstractState___pyx_fuse_1get_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_1get_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_1set_bi, __pyx_k_AbstractState___pyx_fuse_1set_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_1set_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_1set_bi_2, __pyx_k_AbstractState___pyx_fuse_1set_bi_2, sizeof(__pyx_k_AbstractState___pyx_fuse_1set_bi_2), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_2get_bi, __pyx_k_AbstractState___pyx_fuse_2get_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_2get_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_2set_bi, __pyx_k_AbstractState___pyx_fuse_2set_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_2set_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_2set_bi_2, __pyx_k_AbstractState___pyx_fuse_2set_bi_2, sizeof(__pyx_k_AbstractState___pyx_fuse_2set_bi_2), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_3get_bi, __pyx_k_AbstractState___pyx_fuse_3get_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_3get_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_3set_bi, __pyx_k_AbstractState___pyx_fuse_3set_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_3set_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_3set_bi_2, __pyx_k_AbstractState___pyx_fuse_3set_bi_2, sizeof(__pyx_k_AbstractState___pyx_fuse_3set_bi_2), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_4get_bi, __pyx_k_AbstractState___pyx_fuse_4get_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_4get_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_4set_bi, __pyx_k_AbstractState___pyx_fuse_4set_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_4set_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_4set_bi_2, __pyx_k_AbstractState___pyx_fuse_4set_bi_2, sizeof(__pyx_k_AbstractState___pyx_fuse_4set_bi_2), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_5get_bi, __pyx_k_AbstractState___pyx_fuse_5get_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_5get_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_5set_bi, __pyx_k_AbstractState___pyx_fuse_5set_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_5set_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_5set_bi_2, __pyx_k_AbstractState___pyx_fuse_5set_bi_2, sizeof(__pyx_k_AbstractState___pyx_fuse_5set_bi_2), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_6get_bi, __pyx_k_AbstractState___pyx_fuse_6get_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_6get_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_6set_bi, __pyx_k_AbstractState___pyx_fuse_6set_bi, sizeof(__pyx_k_AbstractState___pyx_fuse_6set_bi), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState___pyx_fuse_6set_bi_2, __pyx_k_AbstractState___pyx_fuse_6set_bi_2, sizeof(__pyx_k_AbstractState___pyx_fuse_6set_bi_2), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState_get_binary_interac, __pyx_k_AbstractState_get_binary_interac, sizeof(__pyx_k_AbstractState_get_binary_interac), 0, 0, 1, 1},
  {&__pyx_kp_s_AbstractState_pyx, __pyx_k_AbstractState_pyx, sizeof(__pyx_k_AbstractState_pyx), 0, 0, 1, 0},
  {&__pyx_n_s_AbstractState_set_binary_interac, __pyx_k_AbstractState_set_binary_interac, sizeof(__pyx_k_AbstractState_set_binary_interac), 0, 0, 1, 1},
  {&__pyx_n_s_AbstractState_set_binary_interac_2, __pyx_k_AbstractState_set_binary_interac_2, sizeof(__pyx_k_AbstractState_set_binary_interac_2), 0, 0, 1, 1},
  {&__pyx_kp_s_BibTeX, __pyx_k_BibTeX, sizeof(__pyx_k_BibTeX), 0, 0, 1, 0},
  {&__pyx_n_s_Bvirial, __pyx_k_Bvirial, sizeof(__pyx_k_Bvirial), 0, 0, 1, 1},
  {&__pyx_n_s_C, __pyx_k_C, sizeof(__pyx_k_C), 0, 0, 1, 1},
  {&__pyx_n_s_C0, __pyx_k_C0, sizeof(__pyx_k_C0), 0, 0, 1, 1},
  {&__pyx_n_s_CAS1, __pyx_k_CAS1, sizeof(__pyx_k_CAS1), 0, 0, 1, 1},
  {&__pyx_n_s_CAS2, __pyx_k_CAS2, sizeof(__pyx_k_CAS2), 0, 0, 1, 1},
  {&__pyx_n_s_CONSTANT, __pyx_k_CONSTANT, sizeof(__pyx_k_CONSTANT), 0, 0, 1, 1},
  {&__pyx_n_s_CONSTANT1, __pyx_k_CONSTANT1, sizeof(__pyx_k_CONSTANT1), 0, 0, 1, 1},
  {&__pyx_n_s_CONSTANT2, __pyx_k_CONSTANT2, sizeof(__pyx_k_CONSTANT2), 0, 0, 1, 1},
  {&__pyx_kp_s_Call_to_the_AbstractState_for_mo, __pyx_k_Call_to_the_AbstractState_for_mo, sizeof(__pyx_k_Call_to_the_AbstractState_for_mo), 0, 0, 1, 0},
  {&__pyx_kp_s_Call_to_the_Python_call_layer_Co, __pyx_k_Call_to_the_Python_call_layer_Co, sizeof(__pyx_k_Call_to_the_Python_call_layer_Co), 0, 0, 1, 0},
  {&__pyx_kp_s_Call_to_the_c_layer_using_intege, __pyx_k_Call_to_the_c_layer_using_intege, sizeof(__pyx_k_Call_to_the_c_layer_using_intege), 0, 0, 1, 0},
  {&__pyx_n_s_Constant, __pyx_k_Constant, sizeof(__pyx_k_Constant), 0, 0, 1, 1},
  {&__pyx_n_s_Constant1, __pyx_k_Constant1, sizeof(__pyx_k_Constant1), 0, 0, 1, 1},
  {&__pyx_n_s_Constant2, __pyx_k_Constant2, sizeof(__pyx_k_Constant2), 0, 0, 1, 1},
  {&__pyx_n_s_CoolProp, __pyx_k_CoolProp, sizeof(__pyx_k_CoolProp), 0, 0, 1, 1},
  {&__pyx_n_s_CoolProp_CoolProp, __pyx_k_CoolProp_CoolProp, sizeof(__pyx_k_CoolProp_CoolProp), 0, 0, 1, 1},
  {&__pyx_kp_s_CoolProp_pyx, __pyx_k_CoolProp_pyx, sizeof(__pyx_k_CoolProp_pyx), 0, 0, 1, 0},
  {&__pyx_n_s_Cvirial, __pyx_k_Cvirial, sizeof(__pyx_k_Cvirial), 0, 0, 1, 1},
  {&__pyx_n_b_D, __pyx_k_D, sizeof(__pyx_k_D), 0, 0, 0, 1},
  {&__pyx_n_s_D, __pyx_k_D, sizeof(__pyx_k_D), 0, 0, 1, 1},
  {&__pyx_n_s_DeprecationWarning, __pyx_k_DeprecationWarning, sizeof(__pyx_k_DeprecationWarning), 0, 0, 1, 1},
  {&__pyx_kp_s_Direct_c_call_to_CoolProp_withou, __pyx_k_Direct_c_call_to_CoolProp_withou, sizeof(__pyx_k_Direct_c_call_to_CoolProp_withou), 0, 0, 1, 0},
  {&__pyx_n_s_EOS_name, __pyx_k_EOS_name, sizeof(__pyx_k_EOS_name), 0, 0, 1, 1},
  {&__pyx_kp_s_Elapsed_time_for_0_d_calls_at_1, __pyx_k_Elapsed_time_for_0_d_calls_at_1, sizeof(__pyx_k_Elapsed_time_for_0_d_calls_at_1), 0, 0, 1, 0},
  {&__pyx_kp_s_Elapsed_time_for_0_d_calls_for_1, __pyx_k_Elapsed_time_for_0_d_calls_for_1, sizeof(__pyx_k_Elapsed_time_for_0_d_calls_for_1), 0, 0, 1, 0},
  {&__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_k_Expected_at_least_d_argument_s_g, sizeof(__pyx_k_Expected_at_least_d_argument_s_g), 0, 0, 1, 0},
  {&__pyx_n_s_Fluid, __pyx_k_Fluid, sizeof(__pyx_k_Fluid), 0, 0, 1, 1},
  {&__pyx_n_s_FluidName, __pyx_k_FluidName, sizeof(__pyx_k_FluidName), 0, 0, 1, 1},
  {&__pyx_n_s_Fluid_2, __pyx_k_Fluid_2, sizeof(__pyx_k_Fluid_2), 0, 0, 1, 1},
  {&__pyx_n_b_FluidsList, __pyx_k_FluidsList, sizeof(__pyx_k_FluidsList), 0, 0, 0, 1},
  {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0},
  {&__pyx_n_s_H, __pyx_k_H, sizeof(__pyx_k_H), 0, 0, 1, 1},
  {&__pyx_kp_s_HAPropsSI_failed_ungracefully_wi, __pyx_k_HAPropsSI_failed_ungracefully_wi, sizeof(__pyx_k_HAPropsSI_failed_ungracefully_wi), 0, 0, 1, 0},
  {&__pyx_kp_s_HAProps_failed_ungracefully_with, __pyx_k_HAProps_failed_ungracefully_with, sizeof(__pyx_k_HAProps_failed_ungracefully_with), 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_0x0a, __pyx_k_Incompatible_checksums_s_vs_0x0a, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x0a), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0x59, __pyx_k_Incompatible_checksums_s_vs_0x59, sizeof(__pyx_k_Incompatible_checksums_s_vs_0x59), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xa5, __pyx_k_Incompatible_checksums_s_vs_0xa5, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xa5), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb5, __pyx_k_Incompatible_checksums_s_vs_0xb5, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb5), 0, 0, 1, 0},
  {&__pyx_kp_s_Incompatible_checksums_s_vs_0xfb, __pyx_k_Incompatible_checksums_s_vs_0xfb, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xfb), 0, 0, 1, 0},
  {&__pyx_n_s_Input1, __pyx_k_Input1, sizeof(__pyx_k_Input1), 0, 0, 1, 1},
  {&__pyx_n_s_Input1Name, __pyx_k_Input1Name, sizeof(__pyx_k_Input1Name), 0, 0, 1, 1},
  {&__pyx_n_s_Input2, __pyx_k_Input2, sizeof(__pyx_k_Input2), 0, 0, 1, 1},
  {&__pyx_n_s_Input2Name, __pyx_k_Input2Name, sizeof(__pyx_k_Input2Name), 0, 0, 1, 1},
  {&__pyx_n_s_Input3, __pyx_k_Input3, sizeof(__pyx_k_Input3), 0, 0, 1, 1},
  {&__pyx_n_s_Input3Name, __pyx_k_Input3Name, sizeof(__pyx_k_Input3Name), 0, 0, 1, 1},
  {&__pyx_kp_s_Input_3_is_not_one_dimensional, __pyx_k_Input_3_is_not_one_dimensional, sizeof(__pyx_k_Input_3_is_not_one_dimensional), 0, 0, 1, 0},
  {&__pyx_kp_s_Input_5_is_not_one_dimensional, __pyx_k_Input_5_is_not_one_dimensional, sizeof(__pyx_k_Input_5_is_not_one_dimensional), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_number_of_inputs, __pyx_k_Invalid_number_of_inputs, sizeof(__pyx_k_Invalid_number_of_inputs), 0, 0, 1, 0},
  {&__pyx_kp_s_Iterable_inputs_are_not_all_the, __pyx_k_Iterable_inputs_are_not_all_the, sizeof(__pyx_k_Iterable_inputs_are_not_all_the), 0, 0, 1, 0},
  {&__pyx_n_s_JSONstring, __pyx_k_JSONstring, sizeof(__pyx_k_JSONstring), 0, 0, 1, 1},
  {&__pyx_n_s_K, __pyx_k_K, sizeof(__pyx_k_K), 0, 0, 1, 1},
  {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1},
  {&__pyx_n_s_L, __pyx_k_L, sizeof(__pyx_k_L), 0, 0, 1, 1},
  {&__pyx_kp_s_Length_of_input_name_1_must_be_1, __pyx_k_Length_of_input_name_1_must_be_1, sizeof(__pyx_k_Length_of_input_name_1_must_be_1), 0, 0, 1, 0},
  {&__pyx_kp_s_Length_of_input_name_2_must_be_1, __pyx_k_Length_of_input_name_2_must_be_1, sizeof(__pyx_k_Length_of_input_name_2_must_be_1), 0, 0, 1, 0},
  {&__pyx_n_s_M, __pyx_k_M, sizeof(__pyx_k_M), 0, 0, 1, 1},
  {&__pyx_n_s_MM, __pyx_k_MM, sizeof(__pyx_k_MM), 0, 0, 1, 1},
  {&__pyx_kp_s_M_involves_basically_no_computa, __pyx_k_M_involves_basically_no_computa, sizeof(__pyx_k_M_involves_basically_no_computa), 0, 0, 1, 0},
  {&__pyx_kp_s_NO_UNITS, __pyx_k_NO_UNITS, sizeof(__pyx_k_NO_UNITS), 0, 0, 1, 0},
  {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0},
  {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1},
  {&__pyx_kp_s_Numerical_inputs_to_HAPropsSI_mu, __pyx_k_Numerical_inputs_to_HAPropsSI_mu, sizeof(__pyx_k_Numerical_inputs_to_HAPropsSI_mu), 0, 0, 1, 0},
  {&__pyx_kp_s_Numerical_inputs_to_HAProps_must, __pyx_k_Numerical_inputs_to_HAProps_must, sizeof(__pyx_k_Numerical_inputs_to_HAProps_must), 0, 0, 1, 0},
  {&__pyx_n_s_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 1, 1},
  {&__pyx_n_s_OF, __pyx_k_OF, sizeof(__pyx_k_OF), 0, 0, 1, 1},
  {&__pyx_n_s_OF1, __pyx_k_OF1, sizeof(__pyx_k_OF1), 0, 0, 1, 1},
  {&__pyx_n_s_Of, __pyx_k_Of, sizeof(__pyx_k_Of), 0, 0, 1, 1},
  {&__pyx_n_s_Of1, __pyx_k_Of1, sizeof(__pyx_k_Of1), 0, 0, 1, 1},
  {&__pyx_n_s_OutputName, __pyx_k_OutputName, sizeof(__pyx_k_OutputName), 0, 0, 1, 1},
  {&__pyx_n_s_P, __pyx_k_P, sizeof(__pyx_k_P), 0, 0, 1, 1},
  {&__pyx_n_s_PIP, __pyx_k_PIP, sizeof(__pyx_k_PIP), 0, 0, 1, 1},
  {&__pyx_kp_s_Pa_s, __pyx_k_Pa_s, sizeof(__pyx_k_Pa_s), 0, 0, 1, 0},
  {&__pyx_n_s_Phase, __pyx_k_Phase, sizeof(__pyx_k_Phase), 0, 0, 1, 1},
  {&__pyx_kp_s_Phase_not_defined_for_fluids_oth, __pyx_k_Phase_not_defined_for_fluids_oth, sizeof(__pyx_k_Phase_not_defined_for_fluids_oth), 0, 0, 1, 0},
  {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
  {&__pyx_n_s_Prandtl, __pyx_k_Prandtl, sizeof(__pyx_k_Prandtl), 0, 0, 1, 1},
  {&__pyx_n_s_Props, __pyx_k_Props, sizeof(__pyx_k_Props), 0, 0, 1, 1},
  {&__pyx_n_s_PropsSI, __pyx_k_PropsSI, sizeof(__pyx_k_PropsSI), 0, 0, 1, 1},
  {&__pyx_kp_s_Props_function_is_deprecated_Use, __pyx_k_Props_function_is_deprecated_Use, sizeof(__pyx_k_Props_function_is_deprecated_Use), 0, 0, 1, 0},
  {&__pyx_n_s_PyCriticalState, __pyx_k_PyCriticalState, sizeof(__pyx_k_PyCriticalState), 0, 0, 1, 1},
  {&__pyx_n_s_PyGuessesStructure, __pyx_k_PyGuessesStructure, sizeof(__pyx_k_PyGuessesStructure), 0, 0, 1, 1},
  {&__pyx_n_s_PyPhaseEnvelopeData, __pyx_k_PyPhaseEnvelopeData, sizeof(__pyx_k_PyPhaseEnvelopeData), 0, 0, 1, 1},
  {&__pyx_n_s_PySpinodalData, __pyx_k_PySpinodalData, sizeof(__pyx_k_PySpinodalData), 0, 0, 1, 1},
  {&__pyx_n_s_Q, __pyx_k_Q, sizeof(__pyx_k_Q), 0, 0, 1, 1},
  {&__pyx_n_b_REFPROP_name, __pyx_k_REFPROP_name, sizeof(__pyx_k_REFPROP_name), 0, 0, 0, 1},
  {&__pyx_n_s_S, __pyx_k_S, sizeof(__pyx_k_S), 0, 0, 1, 1},
  {&__pyx_kp_s_Sizes_of_Prop1_n1_d_and_Prop2_n2, __pyx_k_Sizes_of_Prop1_n1_d_and_Prop2_n2, sizeof(__pyx_k_Sizes_of_Prop1_n1_d_and_Prop2_n2), 0, 0, 1, 0},
  {&__pyx_n_s_State, __pyx_k_State, sizeof(__pyx_k_State), 0, 0, 1, 1},
  {&__pyx_n_s_StateDict, __pyx_k_StateDict, sizeof(__pyx_k_StateDict), 0, 0, 1, 1},
  {&__pyx_n_b_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 0, 1},
  {&__pyx_n_s_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 1, 1},
  {&__pyx_n_s_T_critical, __pyx_k_T_critical, sizeof(__pyx_k_T_critical), 0, 0, 1, 1},
  {&__pyx_n_s_T_reducing, __pyx_k_T_reducing, sizeof(__pyx_k_T_reducing), 0, 0, 1, 1},
  {&__pyx_n_s_Tmax, __pyx_k_Tmax, sizeof(__pyx_k_Tmax), 0, 0, 1, 1},
  {&__pyx_n_s_Tmin, __pyx_k_Tmin, sizeof(__pyx_k_Tmin), 0, 0, 1, 1},
  {&__pyx_n_s_Tsat, __pyx_k_Tsat, sizeof(__pyx_k_Tsat), 0, 0, 1, 1},
  {&__pyx_n_s_Ttriple, __pyx_k_Ttriple, sizeof(__pyx_k_Ttriple), 0, 0, 1, 1},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_n_s_U, __pyx_k_U, sizeof(__pyx_k_U), 0, 0, 1, 1},
  {&__pyx_n_s_V, __pyx_k_V, sizeof(__pyx_k_V), 0, 0, 1, 1},
  {&__pyx_n_s_Value1, __pyx_k_Value1, sizeof(__pyx_k_Value1), 0, 0, 1, 1},
  {&__pyx_n_s_Value2, __pyx_k_Value2, sizeof(__pyx_k_Value2), 0, 0, 1, 1},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_n_s_WRT, __pyx_k_WRT, sizeof(__pyx_k_WRT), 0, 0, 1, 1},
  {&__pyx_n_s_WRT1, __pyx_k_WRT1, sizeof(__pyx_k_WRT1), 0, 0, 1, 1},
  {&__pyx_n_s_WRT2, __pyx_k_WRT2, sizeof(__pyx_k_WRT2), 0, 0, 1, 1},
  {&__pyx_n_s_Wrt, __pyx_k_Wrt, sizeof(__pyx_k_Wrt), 0, 0, 1, 1},
  {&__pyx_n_s_Wrt1, __pyx_k_Wrt1, sizeof(__pyx_k_Wrt1), 0, 0, 1, 1},
  {&__pyx_n_s_Wrt2, __pyx_k_Wrt2, sizeof(__pyx_k_Wrt2), 0, 0, 1, 1},
  {&__pyx_kp_s_Your_output_is_invalid, __pyx_k_Your_output_is_invalid, sizeof(__pyx_k_Your_output_is_invalid), 0, 0, 1, 0},
  {&__pyx_kp_s__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 0, 1, 0},
  {&__pyx_kp_s__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 0, 1, 0},
  {&__pyx_kp_b__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 0, 0, 0},
  {&__pyx_kp_u__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 1, 0, 0},
  {&__pyx_kp_b__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 0, 0, 0},
  {&__pyx_kp_s__22, __pyx_k__22, sizeof(__pyx_k__22), 0, 0, 1, 0},
  {&__pyx_kp_s__23, __pyx_k__23, sizeof(__pyx_k__23), 0, 0, 1, 0},
  {&__pyx_kp_s__26, __pyx_k__26, sizeof(__pyx_k__26), 0, 0, 1, 0},
  {&__pyx_kp_s__28, __pyx_k__28, sizeof(__pyx_k__28), 0, 0, 1, 0},
  {&__pyx_kp_s__29, __pyx_k__29, sizeof(__pyx_k__29), 0, 0, 1, 0},
  {&__pyx_kp_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 0},
  {&__pyx_n_s__31, __pyx_k__31, sizeof(__pyx_k__31), 0, 0, 1, 1},
  {&__pyx_kp_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 0},
  {&__pyx_kp_s__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 0, 1, 0},
  {&__pyx_n_s_acentric_factor, __pyx_k_acentric_factor, sizeof(__pyx_k_acentric_factor), 0, 0, 1, 1},
  {&__pyx_n_b_aliases, __pyx_k_aliases, sizeof(__pyx_k_aliases), 0, 0, 0, 1},
  {&__pyx_n_s_all_critical_points, __pyx_k_all_critical_points, sizeof(__pyx_k_all_critical_points), 0, 0, 1, 1},
  {&__pyx_n_s_alpha0, __pyx_k_alpha0, sizeof(__pyx_k_alpha0), 0, 0, 1, 1},
  {&__pyx_n_s_alphar, __pyx_k_alphar, sizeof(__pyx_k_alphar), 0, 0, 1, 1},
  {&__pyx_n_s_apply_simple_mixing_rule, __pyx_k_apply_simple_mixing_rule, sizeof(__pyx_k_apply_simple_mixing_rule), 0, 0, 1, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 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_backend, __pyx_k_backend, sizeof(__pyx_k_backend), 0, 0, 1, 1},
  {&__pyx_n_s_backend_name, __pyx_k_backend_name, sizeof(__pyx_k_backend_name), 0, 0, 1, 1},
  {&__pyx_n_s_build_phase_envelope, __pyx_k_build_phase_envelope, sizeof(__pyx_k_build_phase_envelope), 0, 0, 1, 1},
  {&__pyx_n_s_build_spinodal, __pyx_k_build_spinodal, sizeof(__pyx_k_build_spinodal), 0, 0, 1, 1},
  {&__pyx_n_s_bytes, __pyx_k_bytes, sizeof(__pyx_k_bytes), 0, 0, 1, 1},
  {&__pyx_n_s_category, __pyx_k_category, sizeof(__pyx_k_category), 0, 0, 1, 1},
  {&__pyx_n_s_change_EOS, __pyx_k_change_EOS, sizeof(__pyx_k_change_EOS), 0, 0, 1, 1},
  {&__pyx_kp_s_char, __pyx_k_char, sizeof(__pyx_k_char), 0, 0, 1, 0},
  {&__pyx_n_s_chemical_potential, __pyx_k_chemical_potential, sizeof(__pyx_k_chemical_potential), 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_clock, __pyx_k_clock, sizeof(__pyx_k_clock), 0, 0, 1, 1},
  {&__pyx_n_s_conductivity, __pyx_k_conductivity, sizeof(__pyx_k_conductivity), 0, 0, 1, 1},
  {&__pyx_n_s_conductivity_contributions, __pyx_k_conductivity_contributions, sizeof(__pyx_k_conductivity_contributions), 0, 0, 1, 1},
  {&__pyx_n_s_conformal_state, __pyx_k_conformal_state, sizeof(__pyx_k_conformal_state), 0, 0, 1, 1},
  {&__pyx_n_s_constants, __pyx_k_constants, sizeof(__pyx_k_constants), 0, 0, 1, 1},
  {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
  {&__pyx_n_s_cp, __pyx_k_cp, sizeof(__pyx_k_cp), 0, 0, 1, 1},
  {&__pyx_n_s_cp0, __pyx_k_cp0, sizeof(__pyx_k_cp0), 0, 0, 1, 1},
  {&__pyx_n_s_cp0mass, __pyx_k_cp0mass, sizeof(__pyx_k_cp0mass), 0, 0, 1, 1},
  {&__pyx_n_s_cp0molar, __pyx_k_cp0molar, sizeof(__pyx_k_cp0molar), 0, 0, 1, 1},
  {&__pyx_n_s_cpmass, __pyx_k_cpmass, sizeof(__pyx_k_cpmass), 0, 0, 1, 1},
  {&__pyx_n_s_cpmolar, __pyx_k_cpmolar, sizeof(__pyx_k_cpmolar), 0, 0, 1, 1},
  {&__pyx_n_s_critical, __pyx_k_critical, sizeof(__pyx_k_critical), 0, 0, 1, 1},
  {&__pyx_n_s_criticality_contour_values, __pyx_k_criticality_contour_values, sizeof(__pyx_k_criticality_contour_values), 0, 0, 1, 1},
  {&__pyx_n_s_cv, __pyx_k_cv, sizeof(__pyx_k_cv), 0, 0, 1, 1},
  {&__pyx_n_s_cvmass, __pyx_k_cvmass, sizeof(__pyx_k_cvmass), 0, 0, 1, 1},
  {&__pyx_n_s_cvmolar, __pyx_k_cvmolar, sizeof(__pyx_k_cvmolar), 0, 0, 1, 1},
  {&__pyx_n_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1},
  {&__pyx_n_s_d2alpha0_dDelta2, __pyx_k_d2alpha0_dDelta2, sizeof(__pyx_k_d2alpha0_dDelta2), 0, 0, 1, 1},
  {&__pyx_n_s_d2alpha0_dDelta_dTau, __pyx_k_d2alpha0_dDelta_dTau, sizeof(__pyx_k_d2alpha0_dDelta_dTau), 0, 0, 1, 1},
  {&__pyx_n_s_d2alpha0_dTau2, __pyx_k_d2alpha0_dTau2, sizeof(__pyx_k_d2alpha0_dTau2), 0, 0, 1, 1},
  {&__pyx_n_s_d2alphar_dDelta2, __pyx_k_d2alphar_dDelta2, sizeof(__pyx_k_d2alphar_dDelta2), 0, 0, 1, 1},
  {&__pyx_n_s_d2alphar_dDelta_dTau, __pyx_k_d2alphar_dDelta_dTau, sizeof(__pyx_k_d2alphar_dDelta_dTau), 0, 0, 1, 1},
  {&__pyx_n_s_d2alphar_dTau2, __pyx_k_d2alphar_dTau2, sizeof(__pyx_k_d2alphar_dTau2), 0, 0, 1, 1},
  {&__pyx_n_s_d3alpha0_dDelta2_dTau, __pyx_k_d3alpha0_dDelta2_dTau, sizeof(__pyx_k_d3alpha0_dDelta2_dTau), 0, 0, 1, 1},
  {&__pyx_n_s_d3alpha0_dDelta3, __pyx_k_d3alpha0_dDelta3, sizeof(__pyx_k_d3alpha0_dDelta3), 0, 0, 1, 1},
  {&__pyx_n_s_d3alpha0_dDelta_dTau2, __pyx_k_d3alpha0_dDelta_dTau2, sizeof(__pyx_k_d3alpha0_dDelta_dTau2), 0, 0, 1, 1},
  {&__pyx_n_s_d3alpha0_dTau3, __pyx_k_d3alpha0_dTau3, sizeof(__pyx_k_d3alpha0_dTau3), 0, 0, 1, 1},
  {&__pyx_n_s_d3alphar_dDelta2_dTau, __pyx_k_d3alphar_dDelta2_dTau, sizeof(__pyx_k_d3alphar_dDelta2_dTau), 0, 0, 1, 1},
  {&__pyx_n_s_d3alphar_dDelta3, __pyx_k_d3alphar_dDelta3, sizeof(__pyx_k_d3alphar_dDelta3), 0, 0, 1, 1},
  {&__pyx_n_s_d3alphar_dDelta_dTau2, __pyx_k_d3alphar_dDelta_dTau2, sizeof(__pyx_k_d3alphar_dDelta_dTau2), 0, 0, 1, 1},
  {&__pyx_n_s_d3alphar_dTau3, __pyx_k_d3alphar_dTau3, sizeof(__pyx_k_d3alphar_dTau3), 0, 0, 1, 1},
  {&__pyx_n_s_d4alphar_dDelta2_dTau2, __pyx_k_d4alphar_dDelta2_dTau2, sizeof(__pyx_k_d4alphar_dDelta2_dTau2), 0, 0, 1, 1},
  {&__pyx_n_s_d4alphar_dDelta3_dTau, __pyx_k_d4alphar_dDelta3_dTau, sizeof(__pyx_k_d4alphar_dDelta3_dTau), 0, 0, 1, 1},
  {&__pyx_n_s_d4alphar_dDelta4, __pyx_k_d4alphar_dDelta4, sizeof(__pyx_k_d4alphar_dDelta4), 0, 0, 1, 1},
  {&__pyx_n_s_d4alphar_dDelta_dTau3, __pyx_k_d4alphar_dDelta_dTau3, sizeof(__pyx_k_d4alphar_dDelta_dTau3), 0, 0, 1, 1},
  {&__pyx_n_s_d4alphar_dTau4, __pyx_k_d4alphar_dTau4, sizeof(__pyx_k_d4alphar_dTau4), 0, 0, 1, 1},
  {&__pyx_kp_s_d_P_d_T_Dmolar, __pyx_k_d_P_d_T_Dmolar, sizeof(__pyx_k_d_P_d_T_Dmolar), 0, 0, 1, 0},
  {&__pyx_n_s_dalpha0_dDelta, __pyx_k_dalpha0_dDelta, sizeof(__pyx_k_dalpha0_dDelta), 0, 0, 1, 1},
  {&__pyx_n_s_dalpha0_dTau, __pyx_k_dalpha0_dTau, sizeof(__pyx_k_dalpha0_dTau), 0, 0, 1, 1},
  {&__pyx_n_s_dalphar_dDelta, __pyx_k_dalphar_dDelta, sizeof(__pyx_k_dalphar_dDelta), 0, 0, 1, 1},
  {&__pyx_n_s_dalphar_dTau, __pyx_k_dalphar_dTau, sizeof(__pyx_k_dalphar_dTau), 0, 0, 1, 1},
  {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1},
  {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1},
  {&__pyx_n_s_delta, __pyx_k_delta, sizeof(__pyx_k_delta), 0, 0, 1, 1},
  {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
  {&__pyx_n_s_dilute, __pyx_k_dilute, sizeof(__pyx_k_dilute), 0, 0, 1, 1},
  {&__pyx_n_s_dpdT, __pyx_k_dpdT, sizeof(__pyx_k_dpdT), 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_err, __pyx_k_err, sizeof(__pyx_k_err), 0, 0, 1, 1},
  {&__pyx_kp_s_err_s, __pyx_k_err_s, sizeof(__pyx_k_err_s), 0, 0, 1, 0},
  {&__pyx_kp_s_err_s_inputs_were_in1_s_in2_s, __pyx_k_err_s_inputs_were_in1_s_in2_s, sizeof(__pyx_k_err_s_inputs_were_in1_s_in2_s), 0, 0, 1, 0},
  {&__pyx_kp_s_err_s_inputs_were_out_s_in1n_s, __pyx_k_err_s_inputs_were_out_s_in1n_s, sizeof(__pyx_k_err_s_inputs_were_out_s_in1n_s), 0, 0, 1, 0},
  {&__pyx_kp_s_err_s_inputs_were_out_s_in1n_s_2, __pyx_k_err_s_inputs_were_out_s_in1n_s_2, sizeof(__pyx_k_err_s_inputs_were_out_s_in1n_s_2), 0, 0, 1, 0},
  {&__pyx_n_b_errstring, __pyx_k_errstring, sizeof(__pyx_k_errstring), 0, 0, 0, 1},
  {&__pyx_n_s_fcn, __pyx_k_fcn, sizeof(__pyx_k_fcn), 0, 0, 1, 1},
  {&__pyx_kp_s_fcn_s_failed_ungracefully_input, __pyx_k_fcn_s_failed_ungracefully_input, sizeof(__pyx_k_fcn_s_failed_ungracefully_input), 0, 0, 1, 0},
  {&__pyx_kp_s_fcn_s_failed_ungracefully_with, __pyx_k_fcn_s_failed_ungracefully_with, sizeof(__pyx_k_fcn_s_failed_ungracefully_with), 0, 0, 1, 0},
  {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1},
  {&__pyx_n_s_filterwarnings, __pyx_k_filterwarnings, sizeof(__pyx_k_filterwarnings), 0, 0, 1, 1},
  {&__pyx_n_s_first_partial_deriv, __pyx_k_first_partial_deriv, sizeof(__pyx_k_first_partial_deriv), 0, 0, 1, 1},
  {&__pyx_n_s_first_saturation_deriv, __pyx_k_first_saturation_deriv, sizeof(__pyx_k_first_saturation_deriv), 0, 0, 1, 1},
  {&__pyx_n_s_first_two_phase_deriv, __pyx_k_first_two_phase_deriv, sizeof(__pyx_k_first_two_phase_deriv), 0, 0, 1, 1},
  {&__pyx_n_s_first_two_phase_deriv_splined, __pyx_k_first_two_phase_deriv_splined, sizeof(__pyx_k_first_two_phase_deriv_splined), 0, 0, 1, 1},
  {&__pyx_n_s_fluid, __pyx_k_fluid, sizeof(__pyx_k_fluid), 0, 0, 1, 1},
  {&__pyx_n_s_fluid_names, __pyx_k_fluid_names, sizeof(__pyx_k_fluid_names), 0, 0, 1, 1},
  {&__pyx_n_s_fluid_param_string, __pyx_k_fluid_param_string, sizeof(__pyx_k_fluid_param_string), 0, 0, 1, 1},
  {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
  {&__pyx_n_s_fugacity, __pyx_k_fugacity, sizeof(__pyx_k_fugacity), 0, 0, 1, 1},
  {&__pyx_n_s_fugacity_coefficient, __pyx_k_fugacity_coefficient, sizeof(__pyx_k_fugacity_coefficient), 0, 0, 1, 1},
  {&__pyx_n_s_fundamental_derivative_of_gas_dy, __pyx_k_fundamental_derivative_of_gas_dy, sizeof(__pyx_k_fundamental_derivative_of_gas_dy), 0, 0, 1, 1},
  {&__pyx_n_s_gas, __pyx_k_gas, sizeof(__pyx_k_gas), 0, 0, 1, 1},
  {&__pyx_n_s_gas_constant, __pyx_k_gas_constant, sizeof(__pyx_k_gas_constant), 0, 0, 1, 1},
  {&__pyx_n_s_get_MM, __pyx_k_get_MM, sizeof(__pyx_k_get_MM), 0, 0, 1, 1},
  {&__pyx_n_s_get_Q, __pyx_k_get_Q, sizeof(__pyx_k_get_Q), 0, 0, 1, 1},
  {&__pyx_n_s_get_T, __pyx_k_get_T, sizeof(__pyx_k_get_T), 0, 0, 1, 1},
  {&__pyx_n_s_get_Tsat, __pyx_k_get_Tsat, sizeof(__pyx_k_get_Tsat), 0, 0, 1, 1},
  {&__pyx_n_s_get_binary_interaction_double, __pyx_k_get_binary_interaction_double, sizeof(__pyx_k_get_binary_interaction_double), 0, 0, 1, 1},
  {&__pyx_n_s_get_binary_interaction_string, __pyx_k_get_binary_interaction_string, sizeof(__pyx_k_get_binary_interaction_string), 0, 0, 1, 1},
  {&__pyx_n_s_get_cond, __pyx_k_get_cond, sizeof(__pyx_k_get_cond), 0, 0, 1, 1},
  {&__pyx_n_s_get_cp, __pyx_k_get_cp, sizeof(__pyx_k_get_cp), 0, 0, 1, 1},
  {&__pyx_n_s_get_cp0, __pyx_k_get_cp0, sizeof(__pyx_k_get_cp0), 0, 0, 1, 1},
  {&__pyx_n_s_get_cv, __pyx_k_get_cv, sizeof(__pyx_k_get_cv), 0, 0, 1, 1},
  {&__pyx_n_s_get_dpdT, __pyx_k_get_dpdT, sizeof(__pyx_k_get_dpdT), 0, 0, 1, 1},
  {&__pyx_n_s_get_fluid_constant, __pyx_k_get_fluid_constant, sizeof(__pyx_k_get_fluid_constant), 0, 0, 1, 1},
  {&__pyx_n_s_get_fluid_parameter_double, __pyx_k_get_fluid_parameter_double, sizeof(__pyx_k_get_fluid_parameter_double), 0, 0, 1, 1},
  {&__pyx_n_s_get_h, __pyx_k_get_h, sizeof(__pyx_k_get_h), 0, 0, 1, 1},
  {&__pyx_n_s_get_mass_fractions, __pyx_k_get_mass_fractions, sizeof(__pyx_k_get_mass_fractions), 0, 0, 1, 1},
  {&__pyx_n_s_get_mole_fractions, __pyx_k_get_mole_fractions, sizeof(__pyx_k_get_mole_fractions), 0, 0, 1, 1},
  {&__pyx_n_s_get_p, __pyx_k_get_p, sizeof(__pyx_k_get_p), 0, 0, 1, 1},
  {&__pyx_n_s_get_phase_envelope_data, __pyx_k_get_phase_envelope_data, sizeof(__pyx_k_get_phase_envelope_data), 0, 0, 1, 1},
  {&__pyx_n_s_get_rho, __pyx_k_get_rho, sizeof(__pyx_k_get_rho), 0, 0, 1, 1},
  {&__pyx_n_s_get_s, __pyx_k_get_s, sizeof(__pyx_k_get_s), 0, 0, 1, 1},
  {&__pyx_n_s_get_speed_sound, __pyx_k_get_speed_sound, sizeof(__pyx_k_get_speed_sound), 0, 0, 1, 1},
  {&__pyx_n_s_get_spinodal_data, __pyx_k_get_spinodal_data, sizeof(__pyx_k_get_spinodal_data), 0, 0, 1, 1},
  {&__pyx_n_s_get_subcooling, __pyx_k_get_subcooling, sizeof(__pyx_k_get_subcooling), 0, 0, 1, 1},
  {&__pyx_n_s_get_superheat, __pyx_k_get_superheat, sizeof(__pyx_k_get_superheat), 0, 0, 1, 1},
  {&__pyx_n_s_get_u, __pyx_k_get_u, sizeof(__pyx_k_get_u), 0, 0, 1, 1},
  {&__pyx_n_s_get_visc, __pyx_k_get_visc, sizeof(__pyx_k_get_visc), 0, 0, 1, 1},
  {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
  {&__pyx_n_s_gibbsmass, __pyx_k_gibbsmass, sizeof(__pyx_k_gibbsmass), 0, 0, 1, 1},
  {&__pyx_n_s_gibbsmass_excess, __pyx_k_gibbsmass_excess, sizeof(__pyx_k_gibbsmass_excess), 0, 0, 1, 1},
  {&__pyx_n_s_gibbsmolar, __pyx_k_gibbsmolar, sizeof(__pyx_k_gibbsmolar), 0, 0, 1, 1},
  {&__pyx_n_s_gibbsmolar_excess, __pyx_k_gibbsmolar_excess, sizeof(__pyx_k_gibbsmolar_excess), 0, 0, 1, 1},
  {&__pyx_n_s_given, __pyx_k_given, sizeof(__pyx_k_given), 0, 0, 1, 1},
  {&__pyx_n_s_guesses, __pyx_k_guesses, sizeof(__pyx_k_guesses), 0, 0, 1, 1},
  {&__pyx_n_s_h, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1},
  {&__pyx_n_s_has_melting_line, __pyx_k_has_melting_line, sizeof(__pyx_k_has_melting_line), 0, 0, 1, 1},
  {&__pyx_n_s_helmholtzmass, __pyx_k_helmholtzmass, sizeof(__pyx_k_helmholtzmass), 0, 0, 1, 1},
  {&__pyx_n_s_helmholtzmass_excess, __pyx_k_helmholtzmass_excess, sizeof(__pyx_k_helmholtzmass_excess), 0, 0, 1, 1},
  {&__pyx_n_s_helmholtzmolar, __pyx_k_helmholtzmolar, sizeof(__pyx_k_helmholtzmolar), 0, 0, 1, 1},
  {&__pyx_n_s_helmholtzmolar_excess, __pyx_k_helmholtzmolar_excess, sizeof(__pyx_k_helmholtzmolar_excess), 0, 0, 1, 1},
  {&__pyx_n_s_hmass, __pyx_k_hmass, sizeof(__pyx_k_hmass), 0, 0, 1, 1},
  {&__pyx_n_s_hmass_excess, __pyx_k_hmass_excess, sizeof(__pyx_k_hmass_excess), 0, 0, 1, 1},
  {&__pyx_n_s_hmolar, __pyx_k_hmolar, sizeof(__pyx_k_hmolar), 0, 0, 1, 1},
  {&__pyx_n_s_hmolar_excess, __pyx_k_hmolar_excess, sizeof(__pyx_k_hmolar_excess), 0, 0, 1, 1},
  {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
  {&__pyx_n_s_ideal_curve, __pyx_k_ideal_curve, sizeof(__pyx_k_ideal_curve), 0, 0, 1, 1},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_s_in1, __pyx_k_in1, sizeof(__pyx_k_in1), 0, 0, 1, 1},
  {&__pyx_n_s_in1n, __pyx_k_in1n, sizeof(__pyx_k_in1n), 0, 0, 1, 1},
  {&__pyx_n_s_in2, __pyx_k_in2, sizeof(__pyx_k_in2), 0, 0, 1, 1},
  {&__pyx_n_s_in2n, __pyx_k_in2n, sizeof(__pyx_k_in2n), 0, 0, 1, 1},
  {&__pyx_n_s_in3, __pyx_k_in3, sizeof(__pyx_k_in3), 0, 0, 1, 1},
  {&__pyx_n_s_in3n, __pyx_k_in3n, sizeof(__pyx_k_in3n), 0, 0, 1, 1},
  {&__pyx_n_s_in4, __pyx_k_in4, sizeof(__pyx_k_in4), 0, 0, 1, 1},
  {&__pyx_n_s_in5, __pyx_k_in5, sizeof(__pyx_k_in5), 0, 0, 1, 1},
  {&__pyx_n_s_in6, __pyx_k_in6, sizeof(__pyx_k_in6), 0, 0, 1, 1},
  {&__pyx_n_s_in7, __pyx_k_in7, sizeof(__pyx_k_in7), 0, 0, 1, 1},
  {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1},
  {&__pyx_n_s_initial_density, __pyx_k_initial_density, sizeof(__pyx_k_initial_density), 0, 0, 1, 1},
  {&__pyx_n_s_input, __pyx_k_input, sizeof(__pyx_k_input), 0, 0, 1, 1},
  {&__pyx_kp_s_input_7_cannot_be_provided, __pyx_k_input_7_cannot_be_provided, sizeof(__pyx_k_input_7_cannot_be_provided), 0, 0, 1, 0},
  {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1},
  {&__pyx_n_s_ipair, __pyx_k_ipair, sizeof(__pyx_k_ipair), 0, 0, 1, 1},
  {&__pyx_n_s_is_CPFluid, __pyx_k_is_CPFluid, sizeof(__pyx_k_is_CPFluid), 0, 0, 1, 1},
  {&__pyx_n_s_isinf, __pyx_k_isinf, sizeof(__pyx_k_isinf), 0, 0, 1, 1},
  {&__pyx_n_s_isnan, __pyx_k_isnan, sizeof(__pyx_k_isnan), 0, 0, 1, 1},
  {&__pyx_n_s_isobaric_expansion_coefficient, __pyx_k_isobaric_expansion_coefficient, sizeof(__pyx_k_isobaric_expansion_coefficient), 0, 0, 1, 1},
  {&__pyx_n_s_isothermal_compressibility, __pyx_k_isothermal_compressibility, sizeof(__pyx_k_isothermal_compressibility), 0, 0, 1, 1},
  {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
  {&__pyx_n_s_iteritems, __pyx_k_iteritems, sizeof(__pyx_k_iteritems), 0, 0, 1, 1},
  {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1},
  {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
  {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1},
  {&__pyx_kp_s_kJ_kg, __pyx_k_kJ_kg, sizeof(__pyx_k_kJ_kg), 0, 0, 1, 0},
  {&__pyx_kp_s_kJ_kg_K, __pyx_k_kJ_kg_K, sizeof(__pyx_k_kJ_kg_K), 0, 0, 1, 0},
  {&__pyx_n_s_kPa, __pyx_k_kPa, sizeof(__pyx_k_kPa), 0, 0, 1, 1},
  {&__pyx_kp_s_kPa_K, __pyx_k_kPa_K, sizeof(__pyx_k_kPa_K), 0, 0, 1, 0},
  {&__pyx_kp_s_kW_m_K, __pyx_k_kW_m_K, sizeof(__pyx_k_kW_m_K), 0, 0, 1, 0},
  {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
  {&__pyx_n_s_key1, __pyx_k_key1, sizeof(__pyx_k_key1), 0, 0, 1, 1},
  {&__pyx_n_s_key2, __pyx_k_key2, sizeof(__pyx_k_key2), 0, 0, 1, 1},
  {&__pyx_kp_s_key_is_invalid_to_toSI, __pyx_k_key_is_invalid_to_toSI, sizeof(__pyx_k_key_is_invalid_to_toSI), 0, 0, 1, 0},
  {&__pyx_n_s_keyed_output, __pyx_k_keyed_output, sizeof(__pyx_k_keyed_output), 0, 0, 1, 1},
  {&__pyx_kp_s_kg_kg, __pyx_k_kg_kg, sizeof(__pyx_k_kg_kg), 0, 0, 1, 0},
  {&__pyx_kp_s_kg_kmol, __pyx_k_kg_kmol, sizeof(__pyx_k_kg_kmol), 0, 0, 1, 0},
  {&__pyx_kp_s_kg_m_3, __pyx_k_kg_m_3, sizeof(__pyx_k_kg_m_3), 0, 0, 1, 0},
  {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1},
  {&__pyx_n_s_liquid, __pyx_k_liquid, sizeof(__pyx_k_liquid), 0, 0, 1, 1},
  {&__pyx_n_s_long, __pyx_k_long, sizeof(__pyx_k_long), 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_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1},
  {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1},
  {&__pyx_n_s_melting_line, __pyx_k_melting_line, sizeof(__pyx_k_melting_line), 0, 0, 1, 1},
  {&__pyx_n_s_model, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1},
  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
  {&__pyx_n_s_molar_mass, __pyx_k_molar_mass, sizeof(__pyx_k_molar_mass), 0, 0, 1, 1},
  {&__pyx_n_s_mole_fractions_liquid, __pyx_k_mole_fractions_liquid, sizeof(__pyx_k_mole_fractions_liquid), 0, 0, 1, 1},
  {&__pyx_n_s_mole_fractions_vapor, __pyx_k_mole_fractions_vapor, sizeof(__pyx_k_mole_fractions_vapor), 0, 0, 1, 1},
  {&__pyx_n_s_n1, __pyx_k_n1, sizeof(__pyx_k_n1), 0, 0, 1, 1},
  {&__pyx_n_s_n2, __pyx_k_n2, sizeof(__pyx_k_n2), 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_ndarray, __pyx_k_ndarray, sizeof(__pyx_k_ndarray), 0, 0, 1, 1},
  {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 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_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
  {&__pyx_n_s_numpy_supported, __pyx_k_numpy_supported, sizeof(__pyx_k_numpy_supported), 0, 0, 1, 1},
  {&__pyx_n_s_out, __pyx_k_out, sizeof(__pyx_k_out), 0, 0, 1, 1},
  {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1},
  {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1},
  {&__pyx_n_s_p_critical, __pyx_k_p_critical, sizeof(__pyx_k_p_critical), 0, 0, 1, 1},
  {&__pyx_n_s_param, __pyx_k_param, sizeof(__pyx_k_param), 0, 0, 1, 1},
  {&__pyx_n_s_param_2, __pyx_k_param_2, sizeof(__pyx_k_param_2), 0, 0, 1, 1},
  {&__pyx_n_s_parameter, __pyx_k_parameter, sizeof(__pyx_k_parameter), 0, 0, 1, 1},
  {&__pyx_n_s_phase, __pyx_k_phase, sizeof(__pyx_k_phase), 0, 0, 1, 1},
  {&__pyx_kp_s_phase_2, __pyx_k_phase_2, sizeof(__pyx_k_phase_2), 0, 0, 1, 0},
  {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
  {&__pyx_n_s_pmax, __pyx_k_pmax, sizeof(__pyx_k_pmax), 0, 0, 1, 1},
  {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1},
  {&__pyx_n_s_prod, __pyx_k_prod, sizeof(__pyx_k_prod), 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_fuse_0get_binary_interacti, __pyx_k_pyx_fuse_0get_binary_interacti, sizeof(__pyx_k_pyx_fuse_0get_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0set_binary_interacti, __pyx_k_pyx_fuse_0set_binary_interacti, sizeof(__pyx_k_pyx_fuse_0set_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0set_binary_interacti_2, __pyx_k_pyx_fuse_0set_binary_interacti_2, sizeof(__pyx_k_pyx_fuse_0set_binary_interacti_2), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1get_binary_interacti, __pyx_k_pyx_fuse_1get_binary_interacti, sizeof(__pyx_k_pyx_fuse_1get_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1set_binary_interacti, __pyx_k_pyx_fuse_1set_binary_interacti, sizeof(__pyx_k_pyx_fuse_1set_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1set_binary_interacti_2, __pyx_k_pyx_fuse_1set_binary_interacti_2, sizeof(__pyx_k_pyx_fuse_1set_binary_interacti_2), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_2get_binary_interacti, __pyx_k_pyx_fuse_2get_binary_interacti, sizeof(__pyx_k_pyx_fuse_2get_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_2set_binary_interacti, __pyx_k_pyx_fuse_2set_binary_interacti, sizeof(__pyx_k_pyx_fuse_2set_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_2set_binary_interacti_2, __pyx_k_pyx_fuse_2set_binary_interacti_2, sizeof(__pyx_k_pyx_fuse_2set_binary_interacti_2), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_3get_binary_interacti, __pyx_k_pyx_fuse_3get_binary_interacti, sizeof(__pyx_k_pyx_fuse_3get_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_3set_binary_interacti, __pyx_k_pyx_fuse_3set_binary_interacti, sizeof(__pyx_k_pyx_fuse_3set_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_3set_binary_interacti_2, __pyx_k_pyx_fuse_3set_binary_interacti_2, sizeof(__pyx_k_pyx_fuse_3set_binary_interacti_2), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_4get_binary_interacti, __pyx_k_pyx_fuse_4get_binary_interacti, sizeof(__pyx_k_pyx_fuse_4get_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_4set_binary_interacti, __pyx_k_pyx_fuse_4set_binary_interacti, sizeof(__pyx_k_pyx_fuse_4set_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_4set_binary_interacti_2, __pyx_k_pyx_fuse_4set_binary_interacti_2, sizeof(__pyx_k_pyx_fuse_4set_binary_interacti_2), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_5get_binary_interacti, __pyx_k_pyx_fuse_5get_binary_interacti, sizeof(__pyx_k_pyx_fuse_5get_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_5set_binary_interacti, __pyx_k_pyx_fuse_5set_binary_interacti, sizeof(__pyx_k_pyx_fuse_5set_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_5set_binary_interacti_2, __pyx_k_pyx_fuse_5set_binary_interacti_2, sizeof(__pyx_k_pyx_fuse_5set_binary_interacti_2), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_6get_binary_interacti, __pyx_k_pyx_fuse_6get_binary_interacti, sizeof(__pyx_k_pyx_fuse_6get_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_6set_binary_interacti, __pyx_k_pyx_fuse_6set_binary_interacti, sizeof(__pyx_k_pyx_fuse_6set_binary_interacti), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_6set_binary_interacti_2, __pyx_k_pyx_fuse_6set_binary_interacti_2, sizeof(__pyx_k_pyx_fuse_6set_binary_interacti_2), 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_PyCriticalState, __pyx_k_pyx_unpickle_PyCriticalState, sizeof(__pyx_k_pyx_unpickle_PyCriticalState), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PyGuessesStructur, __pyx_k_pyx_unpickle_PyGuessesStructur, sizeof(__pyx_k_pyx_unpickle_PyGuessesStructur), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PyPhaseEnvelopeDa, __pyx_k_pyx_unpickle_PyPhaseEnvelopeDa, sizeof(__pyx_k_pyx_unpickle_PyPhaseEnvelopeDa), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_PySpinodalData, __pyx_k_pyx_unpickle_PySpinodalData, sizeof(__pyx_k_pyx_unpickle_PySpinodalData), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_unpickle_State, __pyx_k_pyx_unpickle_State, sizeof(__pyx_k_pyx_unpickle_State), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_rebuildState, __pyx_k_rebuildState, sizeof(__pyx_k_rebuildState), 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_reference_fluid, __pyx_k_reference_fluid, sizeof(__pyx_k_reference_fluid), 0, 0, 1, 1},
  {&__pyx_n_s_reshape, __pyx_k_reshape, sizeof(__pyx_k_reshape), 0, 0, 1, 1},
  {&__pyx_n_s_residual, __pyx_k_residual, sizeof(__pyx_k_residual), 0, 0, 1, 1},
  {&__pyx_n_s_retval, __pyx_k_retval, sizeof(__pyx_k_retval), 0, 0, 1, 1},
  {&__pyx_n_s_rho, __pyx_k_rho, sizeof(__pyx_k_rho), 0, 0, 1, 1},
  {&__pyx_n_s_rhomass, __pyx_k_rhomass, sizeof(__pyx_k_rhomass), 0, 0, 1, 1},
  {&__pyx_n_s_rhomass_critical, __pyx_k_rhomass_critical, sizeof(__pyx_k_rhomass_critical), 0, 0, 1, 1},
  {&__pyx_n_s_rhomass_reducing, __pyx_k_rhomass_reducing, sizeof(__pyx_k_rhomass_reducing), 0, 0, 1, 1},
  {&__pyx_n_s_rhomolar, __pyx_k_rhomolar, sizeof(__pyx_k_rhomolar), 0, 0, 1, 1},
  {&__pyx_n_s_rhomolar_critical, __pyx_k_rhomolar_critical, sizeof(__pyx_k_rhomolar_critical), 0, 0, 1, 1},
  {&__pyx_n_s_rhomolar_guess, __pyx_k_rhomolar_guess, sizeof(__pyx_k_rhomolar_guess), 0, 0, 1, 1},
  {&__pyx_n_s_rhomolar_reducing, __pyx_k_rhomolar_reducing, sizeof(__pyx_k_rhomolar_reducing), 0, 0, 1, 1},
  {&__pyx_n_s_rstrip, __pyx_k_rstrip, sizeof(__pyx_k_rstrip), 0, 0, 1, 1},
  {&__pyx_n_s_rule, __pyx_k_rule, sizeof(__pyx_k_rule), 0, 0, 1, 1},
  {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
  {&__pyx_n_s_saturated_liquid_keyed_output, __pyx_k_saturated_liquid_keyed_output, sizeof(__pyx_k_saturated_liquid_keyed_output), 0, 0, 1, 1},
  {&__pyx_n_s_saturated_vapor_keyed_output, __pyx_k_saturated_vapor_keyed_output, sizeof(__pyx_k_saturated_vapor_keyed_output), 0, 0, 1, 1},
  {&__pyx_n_s_saturation_ancillary, __pyx_k_saturation_ancillary, sizeof(__pyx_k_saturation_ancillary), 0, 0, 1, 1},
  {&__pyx_n_s_second_partial_deriv, __pyx_k_second_partial_deriv, sizeof(__pyx_k_second_partial_deriv), 0, 0, 1, 1},
  {&__pyx_n_s_second_saturation_deriv, __pyx_k_second_saturation_deriv, sizeof(__pyx_k_second_saturation_deriv), 0, 0, 1, 1},
  {&__pyx_n_s_second_two_phase_deriv, __pyx_k_second_two_phase_deriv, sizeof(__pyx_k_second_two_phase_deriv), 0, 0, 1, 1},
  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
  {&__pyx_n_s_set_Fluid, __pyx_k_set_Fluid, sizeof(__pyx_k_set_Fluid), 0, 0, 1, 1},
  {&__pyx_n_s_set_binary_interaction_double, __pyx_k_set_binary_interaction_double, sizeof(__pyx_k_set_binary_interaction_double), 0, 0, 1, 1},
  {&__pyx_n_s_set_binary_interaction_string, __pyx_k_set_binary_interaction_string, sizeof(__pyx_k_set_binary_interaction_string), 0, 0, 1, 1},
  {&__pyx_n_s_set_fluid_parameter_double, __pyx_k_set_fluid_parameter_double, sizeof(__pyx_k_set_fluid_parameter_double), 0, 0, 1, 1},
  {&__pyx_n_s_set_mass_fractions, __pyx_k_set_mass_fractions, sizeof(__pyx_k_set_mass_fractions), 0, 0, 1, 1},
  {&__pyx_n_s_set_mole_fractions, __pyx_k_set_mole_fractions, sizeof(__pyx_k_set_mole_fractions), 0, 0, 1, 1},
  {&__pyx_n_s_set_reference_state, __pyx_k_set_reference_state, sizeof(__pyx_k_set_reference_state), 0, 0, 1, 1},
  {&__pyx_n_s_set_volu_fractions, __pyx_k_set_volu_fractions, sizeof(__pyx_k_set_volu_fractions), 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_short, __pyx_k_short, sizeof(__pyx_k_short), 0, 0, 1, 1},
  {&__pyx_n_s_smass, __pyx_k_smass, sizeof(__pyx_k_smass), 0, 0, 1, 1},
  {&__pyx_n_s_smass_excess, __pyx_k_smass_excess, sizeof(__pyx_k_smass_excess), 0, 0, 1, 1},
  {&__pyx_n_s_smolar, __pyx_k_smolar, sizeof(__pyx_k_smolar), 0, 0, 1, 1},
  {&__pyx_n_s_smolar_excess, __pyx_k_smolar_excess, sizeof(__pyx_k_smolar_excess), 0, 0, 1, 1},
  {&__pyx_n_s_specify_phase, __pyx_k_specify_phase, sizeof(__pyx_k_specify_phase), 0, 0, 1, 1},
  {&__pyx_n_s_speed_sound, __pyx_k_speed_sound, sizeof(__pyx_k_speed_sound), 0, 0, 1, 1},
  {&__pyx_n_s_speed_test, __pyx_k_speed_test, sizeof(__pyx_k_speed_test), 0, 0, 1, 1},
  {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
  {&__pyx_n_s_squeeze, __pyx_k_squeeze, sizeof(__pyx_k_squeeze), 0, 0, 1, 1},
  {&__pyx_n_s_string, __pyx_k_string, sizeof(__pyx_k_string), 0, 0, 1, 1},
  {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
  {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1},
  {&__pyx_n_s_subcooling, __pyx_k_subcooling, sizeof(__pyx_k_subcooling), 0, 0, 1, 1},
  {&__pyx_n_s_superheat, __pyx_k_superheat, sizeof(__pyx_k_superheat), 0, 0, 1, 1},
  {&__pyx_n_s_surface_tension, __pyx_k_surface_tension, sizeof(__pyx_k_surface_tension), 0, 0, 1, 1},
  {&__pyx_n_s_tangent_plane_distance, __pyx_k_tangent_plane_distance, sizeof(__pyx_k_tangent_plane_distance), 0, 0, 1, 1},
  {&__pyx_n_s_tau, __pyx_k_tau, sizeof(__pyx_k_tau), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1},
  {&__pyx_n_s_trivial_keyed_output, __pyx_k_trivial_keyed_output, sizeof(__pyx_k_trivial_keyed_output), 0, 0, 1, 1},
  {&__pyx_n_s_true_critical_point, __pyx_k_true_critical_point, sizeof(__pyx_k_true_critical_point), 0, 0, 1, 1},
  {&__pyx_n_s_u, __pyx_k_u, sizeof(__pyx_k_u), 0, 0, 1, 1},
  {&__pyx_n_s_umass, __pyx_k_umass, sizeof(__pyx_k_umass), 0, 0, 1, 1},
  {&__pyx_n_s_umass_excess, __pyx_k_umass_excess, sizeof(__pyx_k_umass_excess), 0, 0, 1, 1},
  {&__pyx_n_s_umolar, __pyx_k_umolar, sizeof(__pyx_k_umolar), 0, 0, 1, 1},
  {&__pyx_n_s_umolar_excess, __pyx_k_umolar_excess, sizeof(__pyx_k_umolar_excess), 0, 0, 1, 1},
  {&__pyx_n_s_unicode, __pyx_k_unicode, sizeof(__pyx_k_unicode), 0, 0, 1, 1},
  {&__pyx_n_s_unspecify_phase, __pyx_k_unspecify_phase, sizeof(__pyx_k_unspecify_phase), 0, 0, 1, 1},
  {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
  {&__pyx_n_s_update_Trho, __pyx_k_update_Trho, sizeof(__pyx_k_update_Trho), 0, 0, 1, 1},
  {&__pyx_n_s_update_ph, __pyx_k_update_ph, sizeof(__pyx_k_update_ph), 0, 0, 1, 1},
  {&__pyx_n_s_update_with_guesses, __pyx_k_update_with_guesses, sizeof(__pyx_k_update_with_guesses), 0, 0, 1, 1},
  {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1},
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
  {&__pyx_n_s_value1, __pyx_k_value1, sizeof(__pyx_k_value1), 0, 0, 1, 1},
  {&__pyx_n_s_value2, __pyx_k_value2, sizeof(__pyx_k_value2), 0, 0, 1, 1},
  {&__pyx_n_s_visc, __pyx_k_visc, sizeof(__pyx_k_visc), 0, 0, 1, 1},
  {&__pyx_n_s_viscosity, __pyx_k_viscosity, sizeof(__pyx_k_viscosity), 0, 0, 1, 1},
  {&__pyx_n_s_viscosity_contributions, __pyx_k_viscosity_contributions, sizeof(__pyx_k_viscosity_contributions), 0, 0, 1, 1},
  {&__pyx_n_s_volumemass_excess, __pyx_k_volumemass_excess, sizeof(__pyx_k_volumemass_excess), 0, 0, 1, 1},
  {&__pyx_n_s_volumemolar_excess, __pyx_k_volumemolar_excess, sizeof(__pyx_k_volumemolar_excess), 0, 0, 1, 1},
  {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1},
  {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1},
  {&__pyx_n_s_warnings, __pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 0, 1, 1},
  {&__pyx_n_s_x_end, __pyx_k_x_end, sizeof(__pyx_k_x_end), 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_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_n_s_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(0, 23, __pyx_L1_error)
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 30, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 47, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 65, __pyx_L1_error)
  __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(1, 86, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 70, __pyx_L1_error)
  __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 588, __pyx_L1_error)
  __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(0, 781, __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);

  /* "HumidAirProp.pyx":108
 * 
 *     else:
 *         raise TypeError('Numerical inputs to HAPropsSI must be ints, floats, lists, or 1D numpy arrays.')             # <<<<<<<<<<<<<<
 * 
 * cpdef HAProps(string OutputName, string Input1Name, Input1, string Input2Name, Input2, string Input3Name, Input3):
 */
  __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_Numerical_inputs_to_HAPropsSI_mu); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple_);
  __Pyx_GIVEREF(__pyx_tuple_);

  /* "HumidAirProp.pyx":182
 * 
 *     else:
 *         raise TypeError('Numerical inputs to HAProps must be ints, floats, lists, or 1D numpy arrays.')             # <<<<<<<<<<<<<<
 * 
 * cpdef tuple HAProps_Aux(str OutputName, double T, double p, double w):
 */
  __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_Numerical_inputs_to_HAProps_must); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__2);
  __Pyx_GIVEREF(__pyx_tuple__2);

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */
  __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);
  __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);

  /* "(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__8 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(4, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);

  /* "(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__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(4, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__9);
  __Pyx_GIVEREF(__pyx_tuple__9);

  /* "CoolProp/CoolProp.pyx":162
 *         _set_reference_stateD(FluidName, args[0], args[1], args[2], args[3])
 *     else:
 *         raise ValueError('Invalid number of inputs')             # <<<<<<<<<<<<<<
 * 
 * # cpdef long get_Fluid_index(string_like Fluid):
 */
  __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_Invalid_number_of_inputs); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "CoolProp/CoolProp.pyx":328
 *     # ...but process Props() function anyway...
 *     if len(in2) != 1:
 *         raise ValueError('Length of input name #1 must be 1 character')             # <<<<<<<<<<<<<<
 *     if len(in4) != 1:
 *         raise ValueError('Length of input name #2 must be 1 character')
 */
  __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Length_of_input_name_1_must_be_1); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);

  /* "CoolProp/CoolProp.pyx":330
 *         raise ValueError('Length of input name #1 must be 1 character')
 *     if len(in4) != 1:
 *         raise ValueError('Length of input name #2 must be 1 character')             # <<<<<<<<<<<<<<
 *     cdef char* c1 = (<bytes>in2)
 *     cdef char* c2 = (<bytes>in4)
 */
  __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_Length_of_input_name_2_must_be_1); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);

  /* "CoolProp/CoolProp.pyx":371
 * 
 *         if _numpy_supported and is_iterable3 and isinstance(in3, np.ndarray) and (np.prod(in3.shape) != max(in3.shape)):
 *             raise ValueError("Input 3 is not one-dimensional")             # <<<<<<<<<<<<<<
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):
 *             raise ValueError("Input 5 is not one-dimensional")
 */
  __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_Input_3_is_not_one_dimensional); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__13);
  __Pyx_GIVEREF(__pyx_tuple__13);

  /* "CoolProp/CoolProp.pyx":373
 *             raise ValueError("Input 3 is not one-dimensional")
 *         if _numpy_supported and is_iterable5 and isinstance(in5, np.ndarray) and (np.prod(in5.shape) != max(in5.shape)):
 *             raise ValueError("Input 5 is not one-dimensional")             # <<<<<<<<<<<<<<
 * 
 *         if is_iterable1 or is_iterable3 or is_iterable5:
 */
  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Input_5_is_not_one_dimensional); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "CoolProp/CoolProp.pyx":431
 *                 return val
 *     else:
 *         raise ValueError('input #7 cannot be provided')             # <<<<<<<<<<<<<<
 * 
 * cpdef list FluidsList():
 */
  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_input_7_cannot_be_provided); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);

  /* "CoolProp/CoolProp.pyx":588
 *         return val*1000
 *     else:
 *         raise KeyError('key is invalid to toSI')             # <<<<<<<<<<<<<<
 * 
 * #A dictionary mapping parameter index to string for use with non-CoolProp fluids
 */
  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_key_is_invalid_to_toSI); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  /* "CoolProp/CoolProp.pyx":781
 *             return self.pAS.phase()
 *         else:
 *             raise NotImplementedError("Phase not defined for fluids other than CoolProp fluids")             # <<<<<<<<<<<<<<
 * 
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:
 */
  __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_Phase_not_defined_for_fluids_oth); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "CoolProp/CoolProp.pyx":785
 *     cpdef double Props(self, constants_header.parameters iOutput) except *:
 *         if iOutput<0:
 *             raise ValueError('Your output is invalid')             # <<<<<<<<<<<<<<
 *         return self.pAS.keyed_output(iOutput)
 * 
 */
  __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_Your_output_is_invalid); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);

  /* "CoolProp/CoolProp.pyx":1083
 *         }
 *         s='phase = '+self.phase+'\n'
 *         for k in ['T','p','rho','Q','h','u','s','visc','k','cp','cp0','cv','dpdT','Prandtl','superheat','subcooling','MM']:             # <<<<<<<<<<<<<<
 *             if k in units:
 *                 s+=k+' = '+str(getattr(self,k))+' '+units[k]+'\n'
 */
  __pyx_tuple__27 = PyTuple_Pack(17, __pyx_n_s_T, __pyx_n_s_p, __pyx_n_s_rho, __pyx_n_s_Q, __pyx_n_s_h, __pyx_n_s_u, __pyx_n_s_s, __pyx_n_s_visc, __pyx_n_s_k, __pyx_n_s_cp, __pyx_n_s_cp0, __pyx_n_s_cv, __pyx_n_s_dpdT, __pyx_n_s_Prandtl, __pyx_n_s_superheat, __pyx_n_s_subcooling, __pyx_n_s_MM); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);

  /* "CoolProp/CoolProp.pyx":23
 * #       in all versions of Python
 * #
 * warnings.filterwarnings('default', category=DeprecationWarning, module='__main__')             # <<<<<<<<<<<<<<
 * 
 * from .typedefs cimport CoolPropDbl
 */
  __pyx_tuple__30 = PyTuple_Pack(1, __pyx_n_s_default); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */
  __pyx_tuple__32 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_CAS1, __pyx_n_s_CAS2, __pyx_n_s_parameter, __pyx_n_s_val); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);
  __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_AbstractState_pyx, __pyx_n_s_pyx_fuse_0set_binary_interacti, 70, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(2, 70, __pyx_L1_error)

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */
  __pyx_tuple__34 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_CAS1, __pyx_n_s_CAS2, __pyx_n_s_parameter); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);
  __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_AbstractState_pyx, __pyx_n_s_pyx_fuse_0get_binary_interacti, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(2, 76, __pyx_L1_error)

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */
  __pyx_tuple__36 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_CAS1, __pyx_n_s_CAS2, __pyx_n_s_parameter, __pyx_n_s_val); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);
  __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 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_AbstractState_pyx, __pyx_n_s_pyx_fuse_0set_binary_interacti_2, 83, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(2, 83, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":122
 * include "AbstractState.pyx"
 * 
 * def set_reference_state(string FluidName, *args):             # <<<<<<<<<<<<<<
 *     """
 *     Accepts one of two signatures:
 */
  __pyx_tuple__38 = PyTuple_Pack(4, __pyx_n_s_FluidName, __pyx_n_s_args, __pyx_n_s_param_2, __pyx_n_s_retval); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);
  __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_CoolProp_pyx, __pyx_n_s_set_reference_state, 122, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 122, __pyx_L1_error)

  /* "CoolProp/CoolProp.pyx":1098
 *         return S
 * 
 * def rebuildState(d):             # <<<<<<<<<<<<<<
 *     S=State(d['Fluid'],{'T':d['T'],'D':d['rho']},phase=d['phase'])
 *     return S
 */
  __pyx_tuple__40 = PyTuple_Pack(2, __pyx_n_s_d, __pyx_n_s_S); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);
  __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_CoolProp_pyx, __pyx_n_s_rebuildState, 1098, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 1098, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __pyx_unpickle_PyPhaseEnvelopeData(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_tuple__42 = 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__42)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);
  __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PyPhaseEnvelopeDa, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(4, 1, __pyx_L1_error)
  __pyx_tuple__44 = 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__44)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);
  __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PyCriticalState, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(4, 1, __pyx_L1_error)
  __pyx_tuple__46 = 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__46)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);
  __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PyGuessesStructur, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(4, 1, __pyx_L1_error)
  __pyx_tuple__48 = 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__48)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);
  __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PySpinodalData, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(4, 1, __pyx_L1_error)
  __pyx_tuple__50 = 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__50)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);
  __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_State, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  __pyx_umethod_PyBytes_Type_strip.type = (PyObject*)&PyBytes_Type;
  __pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
  __pyx_umethod_PyString_Type_encode.type = (PyObject*)&PyString_Type;
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_float_1e6 = PyFloat_FromDouble(1e6); if (unlikely(!__pyx_float_1e6)) __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_10895678 = PyInt_FromLong(10895678L); if (unlikely(!__pyx_int_10895678)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_93516946 = PyInt_FromLong(93516946L); if (unlikely(!__pyx_int_93516946)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_173401925 = PyInt_FromLong(173401925L); if (unlikely(!__pyx_int_173401925)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_190732675 = PyInt_FromLong(190732675L); if (unlikely(!__pyx_int_190732675)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_263767809 = PyInt_FromLong(263767809L); if (unlikely(!__pyx_int_263767809)) __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_v_8CoolProp_8CoolProp_paras = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_8CoolProp_8CoolProp_paras_inverse = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k = Py_None; Py_INCREF(Py_None);
  __pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v = Py_None; Py_INCREF(Py_None);
  __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
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  if (PyType_Ready(&__pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData) < 0) __PYX_ERR(2, 5, __pyx_L1_error)
  __pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData.tp_print = 0;
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData.tp_dictoffset && __pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyPhaseEnvelopeData, (PyObject *)&__pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData) < 0) __PYX_ERR(2, 5, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData) < 0) __PYX_ERR(2, 5, __pyx_L1_error)
  __pyx_ptype_8CoolProp_8CoolProp_PyPhaseEnvelopeData = &__pyx_type_8CoolProp_8CoolProp_PyPhaseEnvelopeData;
  if (PyType_Ready(&__pyx_type_8CoolProp_8CoolProp_PyGuessesStructure) < 0) __PYX_ERR(2, 11, __pyx_L1_error)
  __pyx_type_8CoolProp_8CoolProp_PyGuessesStructure.tp_print = 0;
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8CoolProp_8CoolProp_PyGuessesStructure.tp_dictoffset && __pyx_type_8CoolProp_8CoolProp_PyGuessesStructure.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_8CoolProp_8CoolProp_PyGuessesStructure.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyGuessesStructure, (PyObject *)&__pyx_type_8CoolProp_8CoolProp_PyGuessesStructure) < 0) __PYX_ERR(2, 11, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8CoolProp_8CoolProp_PyGuessesStructure) < 0) __PYX_ERR(2, 11, __pyx_L1_error)
  __pyx_ptype_8CoolProp_8CoolProp_PyGuessesStructure = &__pyx_type_8CoolProp_8CoolProp_PyGuessesStructure;
  if (PyType_Ready(&__pyx_type_8CoolProp_8CoolProp_PyCriticalState) < 0) __PYX_ERR(2, 8, __pyx_L1_error)
  __pyx_type_8CoolProp_8CoolProp_PyCriticalState.tp_print = 0;
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8CoolProp_8CoolProp_PyCriticalState.tp_dictoffset && __pyx_type_8CoolProp_8CoolProp_PyCriticalState.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_8CoolProp_8CoolProp_PyCriticalState.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyCriticalState, (PyObject *)&__pyx_type_8CoolProp_8CoolProp_PyCriticalState) < 0) __PYX_ERR(2, 8, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8CoolProp_8CoolProp_PyCriticalState) < 0) __PYX_ERR(2, 8, __pyx_L1_error)
  __pyx_ptype_8CoolProp_8CoolProp_PyCriticalState = &__pyx_type_8CoolProp_8CoolProp_PyCriticalState;
  if (PyType_Ready(&__pyx_type_8CoolProp_8CoolProp_PySpinodalData) < 0) __PYX_ERR(2, 23, __pyx_L1_error)
  __pyx_type_8CoolProp_8CoolProp_PySpinodalData.tp_print = 0;
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8CoolProp_8CoolProp_PySpinodalData.tp_dictoffset && __pyx_type_8CoolProp_8CoolProp_PySpinodalData.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_8CoolProp_8CoolProp_PySpinodalData.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PySpinodalData, (PyObject *)&__pyx_type_8CoolProp_8CoolProp_PySpinodalData) < 0) __PYX_ERR(2, 23, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8CoolProp_8CoolProp_PySpinodalData) < 0) __PYX_ERR(2, 23, __pyx_L1_error)
  __pyx_ptype_8CoolProp_8CoolProp_PySpinodalData = &__pyx_type_8CoolProp_8CoolProp_PySpinodalData;
  __pyx_vtabptr_8CoolProp_8CoolProp_AbstractState = &__pyx_vtable_8CoolProp_8CoolProp_AbstractState;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.update = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::input_pairs, double, double, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_update;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.update_with_guesses = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::input_pairs, double, double, struct __pyx_obj_8CoolProp_8CoolProp_PyGuessesStructure *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_update_with_guesses;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.set_mole_fractions = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::vector<double> , int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mole_fractions;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.set_mass_fractions = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::vector<double> , int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_mass_fractions;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.set_volu_fractions = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::vector<double> , int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_volu_fractions;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.get_binary_interaction_string = (std::string (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.apply_simple_mixing_rule = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, size_t, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_apply_simple_mixing_rule;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.name = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_name;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.backend_name = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_backend_name;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.fluid_names = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_names;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.fluid_param_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_fluid_param_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.set_fluid_parameter_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, std::string, double, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_fluid_parameter_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.get_fluid_parameter_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_parameter_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.change_EOS = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_change_EOS;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.phase = (CoolProp::phases (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_phase;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.specify_phase = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::phases, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_specify_phase;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.unspecify_phase = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_unspecify_phase;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.Tmin = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmin;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.Tmax = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_Tmax;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.pmax = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_pmax;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.Ttriple = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_Ttriple;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.T_critical = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_T_critical;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.rhomass_critical = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_critical;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.rhomolar_critical = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_critical;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.p_critical = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_p_critical;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.all_critical_points = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_all_critical_points;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.criticality_contour_values = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_criticality_contour_values;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.build_spinodal = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_build_spinodal;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.get_spinodal_data = (struct __pyx_obj_8CoolProp_8CoolProp_PySpinodalData *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_spinodal_data;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.T_reducing = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_T_reducing;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.rhomolar_reducing = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar_reducing;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.rhomass_reducing = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass_reducing;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.tangent_plane_distance = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, double, double, std::vector<double> , int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance *__pyx_optional_args))__pyx_f_8CoolProp_8CoolProp_13AbstractState_tangent_plane_distance;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.T = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_T;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.p = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_p;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.Q = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_Q;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.rhomolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.hmolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.smolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.umolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.cpmolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.cp0molar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0molar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.cvmolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.rhomass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_rhomass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.hmass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.smass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_smass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.umass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_umass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.cpmass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_cpmass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.cp0mass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_cp0mass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.cvmass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_cvmass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.gibbsmass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.gibbsmolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.helmholtzmass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.helmholtzmolar = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.speed_sound = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_speed_sound;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.gas_constant = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_gas_constant;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.tau = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_tau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.delta = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_delta;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.viscosity = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.conductivity = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.conformal_state = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, __pyx_t_8CoolProp_8typedefs_CoolPropDbl, __pyx_t_8CoolProp_8typedefs_CoolPropDbl, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_conformal_state;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.conductivity_contributions = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_conductivity_contributions;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.viscosity_contributions = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_viscosity_contributions;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.surface_tension = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_surface_tension;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.Prandtl = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_Prandtl;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.Bvirial = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_Bvirial;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.Cvirial = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_Cvirial;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.PIP = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_PIP;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.fundamental_derivative_of_gas_dynamics = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_fundamental_derivative_of_gas_dynamics;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.isothermal_compressibility = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_isothermal_compressibility;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.isobaric_expansion_coefficient = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_isobaric_expansion_coefficient;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.fugacity = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.fugacity_coefficient = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_fugacity_coefficient;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.chemical_potential = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_chemical_potential;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.gibbsmolar_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmolar_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.gibbsmass_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_gibbsmass_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.hmolar_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_hmolar_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.hmass_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_hmass_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.smolar_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_smolar_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.smass_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_smass_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.umolar_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_umolar_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.umass_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_umass_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.volumemolar_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemolar_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.volumemass_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_volumemass_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.helmholtzmolar_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmolar_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.helmholtzmass_excess = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_helmholtzmass_excess;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.molar_mass = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_molar_mass;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.acentric_factor = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_acentric_factor;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.true_critical_point = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_true_critical_point;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.get_fluid_constant = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, size_t, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_fluid_constant;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.keyed_output = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_keyed_output;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.trivial_keyed_output = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_trivial_keyed_output;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.saturated_liquid_keyed_output = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_liquid_keyed_output;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.saturated_vapor_keyed_output = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_saturated_vapor_keyed_output;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.ideal_curve = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_ideal_curve;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.first_partial_deriv = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_first_partial_deriv;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.second_partial_deriv = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_second_partial_deriv;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.first_saturation_deriv = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_first_saturation_deriv;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.second_saturation_deriv = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_second_saturation_deriv;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.first_two_phase_deriv = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.second_two_phase_deriv = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_second_two_phase_deriv;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.first_two_phase_deriv_splined = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, CoolProp::parameters, CoolProp::parameters, double, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_first_two_phase_deriv_splined;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.melting_line = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, double, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_melting_line;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.has_melting_line = (bool (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_has_melting_line;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.saturation_ancillary = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, CoolProp::parameters, int, CoolProp::parameters, double, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_saturation_ancillary;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.build_phase_envelope = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_build_phase_envelope;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.get_phase_envelope_data = (struct __pyx_obj_8CoolProp_8CoolProp_PyPhaseEnvelopeData *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_phase_envelope_data;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.mole_fractions_liquid = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_liquid;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.mole_fractions_vapor = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_mole_fractions_vapor;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.get_mass_fractions = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mass_fractions;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.get_mole_fractions = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_mole_fractions;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.alpha0 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_alpha0;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.dalpha0_dDelta = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dDelta;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.dalpha0_dTau = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_dalpha0_dTau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d2alpha0_dDelta2 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta2;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d2alpha0_dDelta_dTau = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dDelta_dTau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d2alpha0_dTau2 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alpha0_dTau2;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alpha0_dTau3 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dTau3;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alpha0_dDelta_dTau2 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta_dTau2;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alpha0_dDelta2_dTau = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta2_dTau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alpha0_dDelta3 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alpha0_dDelta3;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.alphar = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_alphar;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.dalphar_dDelta = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dDelta;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.dalphar_dTau = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_dalphar_dTau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d2alphar_dDelta2 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta2;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d2alphar_dDelta_dTau = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dDelta_dTau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d2alphar_dTau2 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d2alphar_dTau2;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alphar_dDelta3 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta3;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alphar_dDelta2_dTau = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta2_dTau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alphar_dDelta_dTau2 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dDelta_dTau2;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d3alphar_dTau3 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d3alphar_dTau3;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d4alphar_dDelta4 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta4;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d4alphar_dDelta3_dTau = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta3_dTau;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d4alphar_dDelta2_dTau2 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta2_dTau2;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d4alphar_dDelta_dTau3 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dDelta_dTau3;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.d4alphar_dTau4 = (__pyx_t_8CoolProp_8typedefs_CoolPropDbl (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_13AbstractState_d4alphar_dTau4;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_0set_binary_interaction_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, char *, char *, std::string, double, int __pyx_skip_dispatch))__pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_1set_binary_interaction_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, double, int __pyx_skip_dispatch))__pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_2set_binary_interaction_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, double, int __pyx_skip_dispatch))__pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_3set_binary_interaction_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, double, int __pyx_skip_dispatch))__pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_4set_binary_interaction_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, short, short, std::string, double, int __pyx_skip_dispatch))__pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_5set_binary_interaction_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, std::string, double, int __pyx_skip_dispatch))__pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_6set_binary_interaction_double = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, long, long, std::string, double, int __pyx_skip_dispatch))__pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_0get_binary_interaction_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, char *, char *, std::string, int __pyx_skip_dispatch))__pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_1get_binary_interaction_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, int __pyx_skip_dispatch))__pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_2get_binary_interaction_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, int __pyx_skip_dispatch))__pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_3get_binary_interaction_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_4get_binary_interaction_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, short, short, std::string, int __pyx_skip_dispatch))__pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_5get_binary_interaction_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, std::string, int __pyx_skip_dispatch))__pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_6get_binary_interaction_double = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, long, long, std::string, int __pyx_skip_dispatch))__pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_get_binary_interaction_double;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_0set_binary_interaction_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, char *, char *, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_0__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_1set_binary_interaction_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_1__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_2set_binary_interaction_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, PyObject *, PyObject *, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_2__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_3set_binary_interaction_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, std::string, std::string, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_3__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_4set_binary_interaction_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, short, short, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_4__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_5set_binary_interaction_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, int, int, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_5__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string;
  __pyx_vtable_8CoolProp_8CoolProp_AbstractState.__pyx_fuse_6set_binary_interaction_string = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_AbstractState *, long, long, std::string, std::string, int __pyx_skip_dispatch))__pyx_fuse_6__pyx_f_8CoolProp_8CoolProp_13AbstractState_set_binary_interaction_string;
  if (PyType_Ready(&__pyx_type_8CoolProp_8CoolProp_AbstractState) < 0) __PYX_ERR(2, 26, __pyx_L1_error)
  __pyx_type_8CoolProp_8CoolProp_AbstractState.tp_print = 0;
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8CoolProp_8CoolProp_AbstractState.tp_dictoffset && __pyx_type_8CoolProp_8CoolProp_AbstractState.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_8CoolProp_8CoolProp_AbstractState.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_8CoolProp_8CoolProp_AbstractState.tp_dict, __pyx_vtabptr_8CoolProp_8CoolProp_AbstractState) < 0) __PYX_ERR(2, 26, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AbstractState, (PyObject *)&__pyx_type_8CoolProp_8CoolProp_AbstractState) < 0) __PYX_ERR(2, 26, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8CoolProp_8CoolProp_AbstractState) < 0) __PYX_ERR(2, 26, __pyx_L1_error)
  __pyx_ptype_8CoolProp_8CoolProp_AbstractState = &__pyx_type_8CoolProp_8CoolProp_AbstractState;
  __pyx_vtabptr_8CoolProp_8CoolProp_State = &__pyx_vtable_8CoolProp_8CoolProp_State;
  __pyx_vtable_8CoolProp_8CoolProp_State.set_Fluid = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, std::string, std::string, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_set_Fluid;
  __pyx_vtable_8CoolProp_8CoolProp_State.speed_test = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_speed_test;
  __pyx_vtable_8CoolProp_8CoolProp_State.update = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, PyObject *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_update;
  __pyx_vtable_8CoolProp_8CoolProp_State.update_ph = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, double, double, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_update_ph;
  __pyx_vtable_8CoolProp_8CoolProp_State.update_Trho = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, double, double, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_update_Trho;
  __pyx_vtable_8CoolProp_8CoolProp_State.copy = (struct __pyx_obj_8CoolProp_8CoolProp_State *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_copy;
  __pyx_vtable_8CoolProp_8CoolProp_State.Props = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, CoolProp::parameters, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_Props;
  __pyx_vtable_8CoolProp_8CoolProp_State.Phase = (long (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_Phase;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_Q = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_Q;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_T = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_T;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_p = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_p;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_h = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_h;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_rho = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_rho;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_s = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_s;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_u = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_u;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_visc = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_visc;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_cond = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_cond;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_cp = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_cp;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_cp0 = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_cp0;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_cv = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_cv;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_MM = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_MM;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_dpdT = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_dpdT;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_speed_sound = (double (*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_speed_sound;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_Tsat = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch, struct __pyx_opt_args_8CoolProp_8CoolProp_5State_get_Tsat *__pyx_optional_args))__pyx_f_8CoolProp_8CoolProp_5State_get_Tsat;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_subcooling = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_subcooling;
  __pyx_vtable_8CoolProp_8CoolProp_State.get_superheat = (PyObject *(*)(struct __pyx_obj_8CoolProp_8CoolProp_State *, int __pyx_skip_dispatch))__pyx_f_8CoolProp_8CoolProp_5State_get_superheat;
  if (PyType_Ready(&__pyx_type_8CoolProp_8CoolProp_State) < 0) __PYX_ERR(0, 609, __pyx_L1_error)
  __pyx_type_8CoolProp_8CoolProp_State.tp_print = 0;
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8CoolProp_8CoolProp_State.tp_dictoffset && __pyx_type_8CoolProp_8CoolProp_State.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_8CoolProp_8CoolProp_State.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #if CYTHON_COMPILING_IN_CPYTHON
  {
    PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_8CoolProp_8CoolProp_State, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 609, __pyx_L1_error)
    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
      __pyx_wrapperbase_8CoolProp_8CoolProp_5State___init__ = *((PyWrapperDescrObject *)wrapper)->d_base;
      __pyx_wrapperbase_8CoolProp_8CoolProp_5State___init__.doc = __pyx_doc_8CoolProp_8CoolProp_5State___init__;
      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_8CoolProp_8CoolProp_5State___init__;
    }
  }
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON
  {
    PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_8CoolProp_8CoolProp_State, "__str__"); if (unlikely(!wrapper)) __PYX_ERR(0, 609, __pyx_L1_error)
    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
      __pyx_wrapperbase_8CoolProp_8CoolProp_5State_52__str__ = *((PyWrapperDescrObject *)wrapper)->d_base;
      __pyx_wrapperbase_8CoolProp_8CoolProp_5State_52__str__.doc = __pyx_doc_8CoolProp_8CoolProp_5State_52__str__;
      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_8CoolProp_8CoolProp_5State_52__str__;
    }
  }
  #endif
  if (__Pyx_SetVtable(__pyx_type_8CoolProp_8CoolProp_State.tp_dict, __pyx_vtabptr_8CoolProp_8CoolProp_State) < 0) __PYX_ERR(0, 609, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_State, (PyObject *)&__pyx_type_8CoolProp_8CoolProp_State) < 0) __PYX_ERR(0, 609, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8CoolProp_8CoolProp_State) < 0) __PYX_ERR(0, 609, __pyx_L1_error)
  __pyx_ptype_8CoolProp_8CoolProp_State = &__pyx_type_8CoolProp_8CoolProp_State;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

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


#if PY_MAJOR_VERSION < 3
#ifdef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC void
#else
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#endif
#else
#ifdef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initCoolProp(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initCoolProp(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_CoolProp(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_CoolProp(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_CoolProp(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  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 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'CoolProp' 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_CoolProp(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("CoolProp", __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)
  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  #if CYTHON_COMPILING_IN_PYPY
  Py_INCREF(__pyx_b);
  #endif
  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_CoolProp__CoolProp) {
    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, "CoolProp.CoolProp")) {
      if (unlikely(PyDict_SetItemString(modules, "CoolProp.CoolProp", __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();
  (void)__Pyx_modinit_function_export_code();
  if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error;
  (void)__Pyx_modinit_type_import_code();
  (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

  /* "CoolProp/CoolProp.pyx":11
 * cimport cython
 * 
 * import math             # <<<<<<<<<<<<<<
 * import warnings
 * 
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_math, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":12
 * 
 * import math
 * import warnings             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_warnings, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_warnings, __pyx_t_1) < 0) __PYX_ERR(0, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "CoolProp/CoolProp.pyx":23
 * #       in all versions of Python
 * #
 * warnings.filterwarnings('default', category=DeprecationWarning, module='__main__')             # <<<<<<<<<<<<<<
 * 
 * from .typedefs cimport CoolPropDbl
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_warnings); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_filterwarnings); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_category, __pyx_builtin_DeprecationWarning) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_module, __pyx_n_s_main) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__30, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 23, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "CoolProp/CoolProp.pyx":27
 * from .typedefs cimport CoolPropDbl
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import numpy as np
 *     _numpy_supported = True
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    /*try:*/ {

      /* "CoolProp/CoolProp.pyx":28
 * 
 * try:
 *     import numpy as np             # <<<<<<<<<<<<<<
 *     _numpy_supported = True
 * except ImportError:
 */
      __pyx_t_3 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_3) < 0) __PYX_ERR(0, 28, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "CoolProp/CoolProp.pyx":29
 * try:
 *     import numpy as np
 *     _numpy_supported = True             # <<<<<<<<<<<<<<
 * except ImportError:
 *     _numpy_supported = False
 */
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy_supported, Py_True) < 0) __PYX_ERR(0, 29, __pyx_L2_error)

      /* "CoolProp/CoolProp.pyx":27
 * from .typedefs cimport CoolPropDbl
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import numpy as np
 *     _numpy_supported = True
 */
    }
    __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;
    goto __pyx_L7_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "CoolProp/CoolProp.pyx":30
 *     import numpy as np
 *     _numpy_supported = True
 * except ImportError:             # <<<<<<<<<<<<<<
 *     _numpy_supported = False
 * 
 */
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_7) {
      __Pyx_AddTraceback("CoolProp.CoolProp", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 30, __pyx_L4_except_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);

      /* "CoolProp/CoolProp.pyx":31
 *     _numpy_supported = True
 * except ImportError:
 *     _numpy_supported = False             # <<<<<<<<<<<<<<
 * 
 * from libcpp.string cimport string
 */
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy_supported, Py_False) < 0) __PYX_ERR(0, 31, __pyx_L4_except_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L3_exception_handled;
    }
    goto __pyx_L4_except_error;
    __pyx_L4_except_error:;

    /* "CoolProp/CoolProp.pyx":27
 * from .typedefs cimport CoolPropDbl
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import numpy as np
 *     _numpy_supported = True
 */
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
    __pyx_L7_try_end:;
  }

  /* "CoolProp/CoolProp.pyx":99
 *     void _set_departure_functions "CoolProp::set_departure_functions"(const string &functions) except +
 * 
 * from constants import *             # <<<<<<<<<<<<<<
 * from .constants_header cimport *
 * from . cimport constants_header
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s__31);
  __Pyx_GIVEREF(__pyx_n_s__31);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s__31);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_constants, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_import_star(__pyx_t_1) < 0) __PYX_ERR(0, 99, __pyx_L1_error);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "AbstractState.pyx":70
 *         self.thisptr.apply_simple_mixing_rule(i, j, model)
 * 
 *     cpdef set_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, double val):             # <<<<<<<<<<<<<<
 *         """ Set a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_283__pyx_fuse_0set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_0set_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_char, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_285__pyx_fuse_1set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_1set_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_bytes, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_287__pyx_fuse_2set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_2set_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_unicode, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_289__pyx_fuse_3set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_3set_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_string, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_291__pyx_fuse_4set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_4set_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_short, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_293__pyx_fuse_5set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_5set_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_295__pyx_fuse_6set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_6set_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_23set_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState_set_binary_interac, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_2)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_AbstractState->tp_dict, __pyx_n_s_set_binary_interaction_double, __pyx_t_2) < 0) __PYX_ERR(2, 70, __pyx_L1_error)
  PyType_Modified(__pyx_ptype_8CoolProp_8CoolProp_AbstractState);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "AbstractState.pyx":76
 *         else:
 *             self.thisptr.set_binary_interaction_double(<string>CAS1, <string>CAS2, parameter, val)
 *     cpdef double get_binary_interaction_double(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter) except *:             # <<<<<<<<<<<<<<
 *         """ Get a double precision interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::get_binary_interaction_double` """
 *         if string_or_size_t in cython.integral:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_299__pyx_fuse_0get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_0get_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_char, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_301__pyx_fuse_1get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_1get_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_bytes, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_303__pyx_fuse_2get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_2get_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_unicode, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_305__pyx_fuse_3get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_3get_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_string, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_307__pyx_fuse_4get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_4get_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_short, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_309__pyx_fuse_5get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_5get_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_311__pyx_fuse_6get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_6get_bi, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_long, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_FusedFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_25get_binary_interaction_double, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState_get_binary_interac, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_8)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_AbstractState->tp_dict, __pyx_n_s_get_binary_interaction_double, __pyx_t_8) < 0) __PYX_ERR(2, 76, __pyx_L1_error)
  PyType_Modified(__pyx_ptype_8CoolProp_8CoolProp_AbstractState);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

  /* "AbstractState.pyx":83
 *             return self.thisptr.get_binary_interaction_double(<string>CAS1, <string>CAS2, parameter)
 * 
 *     cpdef set_binary_interaction_string(self, string_or_size_t CAS1, string_or_size_t CAS2, string parameter, string val):             # <<<<<<<<<<<<<<
 *         """ Set a string interaction parameter - wrapper of c++ function :cpapi:`CoolProp::AbstractState::set_binary_interaction_string` """
 *         if string_or_size_t in cython.integral:
 */
  __pyx_t_9 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_315__pyx_fuse_0set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_0set_bi_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_9, __pyx_kp_s_char, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_317__pyx_fuse_1set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_1set_bi_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_bytes, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_319__pyx_fuse_2set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_2set_bi_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_unicode, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_321__pyx_fuse_3set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_3set_bi_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_string, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_323__pyx_fuse_4set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_4set_bi_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_short, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_325__pyx_fuse_5set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_5set_bi_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_int, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_327__pyx_fuse_6set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState___pyx_fuse_6set_bi_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_long, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_FusedFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_13AbstractState_27set_binary_interaction_string, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AbstractState_set_binary_interac_2, NULL, __pyx_n_s_CoolProp_CoolProp, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_10)->__signatures__ = __pyx_t_9;
  __Pyx_GIVEREF(__pyx_t_9);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_8CoolProp_8CoolProp_AbstractState->tp_dict, __pyx_n_s_set_binary_interaction_string, __pyx_t_10) < 0) __PYX_ERR(2, 83, __pyx_L1_error)
  PyType_Modified(__pyx_ptype_8CoolProp_8CoolProp_AbstractState);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "CoolProp/CoolProp.pyx":122
 * include "AbstractState.pyx"
 * 
 * def set_reference_state(string FluidName, *args):             # <<<<<<<<<<<<<<
 *     """
 *     Accepts one of two signatures:
 */
  __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_9set_reference_state, NULL, __pyx_n_s_CoolProp_CoolProp); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_reference_state, __pyx_t_11) < 0) __PYX_ERR(0, 122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "CoolProp/CoolProp.pyx":591
 * 
 * #A dictionary mapping parameter index to string for use with non-CoolProp fluids
 * cdef dict paras = {iDmass : 'D',             # <<<<<<<<<<<<<<
 *                    iQ : 'Q',
 *                    imolar_mass : 'M',
 */
  __pyx_t_11 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iDmass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_D) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":592
 * #A dictionary mapping parameter index to string for use with non-CoolProp fluids
 * cdef dict paras = {iDmass : 'D',
 *                    iQ : 'Q',             # <<<<<<<<<<<<<<
 *                    imolar_mass : 'M',
 *                    iT : 'T',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iQ); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_Q) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":593
 * cdef dict paras = {iDmass : 'D',
 *                    iQ : 'Q',
 *                    imolar_mass : 'M',             # <<<<<<<<<<<<<<
 *                    iT : 'T',
 *                    iHmass : 'H',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::imolar_mass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_M) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":594
 *                    iQ : 'Q',
 *                    imolar_mass : 'M',
 *                    iT : 'T',             # <<<<<<<<<<<<<<
 *                    iHmass : 'H',
 *                    iP : 'P',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iT); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_T) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":595
 *                    imolar_mass : 'M',
 *                    iT : 'T',
 *                    iHmass : 'H',             # <<<<<<<<<<<<<<
 *                    iP : 'P',
 *                    iCpmass : 'C',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iHmass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_H) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":596
 *                    iT : 'T',
 *                    iHmass : 'H',
 *                    iP : 'P',             # <<<<<<<<<<<<<<
 *                    iCpmass : 'C',
 *                    iCp0mass : 'C0',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iP); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_P) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":597
 *                    iHmass : 'H',
 *                    iP : 'P',
 *                    iCpmass : 'C',             # <<<<<<<<<<<<<<
 *                    iCp0mass : 'C0',
 *                    iCvmass : 'O',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iCpmass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_C) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":598
 *                    iP : 'P',
 *                    iCpmass : 'C',
 *                    iCp0mass : 'C0',             # <<<<<<<<<<<<<<
 *                    iCvmass : 'O',
 *                    iviscosity : 'V',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iCp0mass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_C0) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":599
 *                    iCpmass : 'C',
 *                    iCp0mass : 'C0',
 *                    iCvmass : 'O',             # <<<<<<<<<<<<<<
 *                    iviscosity : 'V',
 *                    iconductivity : 'L',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iCvmass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_O) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":600
 *                    iCp0mass : 'C0',
 *                    iCvmass : 'O',
 *                    iviscosity : 'V',             # <<<<<<<<<<<<<<
 *                    iconductivity : 'L',
 *                    ispeed_sound: 'A',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iviscosity); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_V) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":601
 *                    iCvmass : 'O',
 *                    iviscosity : 'V',
 *                    iconductivity : 'L',             # <<<<<<<<<<<<<<
 *                    ispeed_sound: 'A',
 *                    iSmass : 'S',
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iconductivity); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_L) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":602
 *                    iviscosity : 'V',
 *                    iconductivity : 'L',
 *                    ispeed_sound: 'A',             # <<<<<<<<<<<<<<
 *                    iSmass : 'S',
 *                    iUmass : 'U'
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::ispeed_sound); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_A) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":603
 *                    iconductivity : 'L',
 *                    ispeed_sound: 'A',
 *                    iSmass : 'S',             # <<<<<<<<<<<<<<
 *                    iUmass : 'U'
 * }
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iSmass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_S) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "CoolProp/CoolProp.pyx":604
 *                    ispeed_sound: 'A',
 *                    iSmass : 'S',
 *                    iUmass : 'U'             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __pyx_t_12 = __Pyx_PyInt_From_CoolProp_3a__3a_parameters(CoolProp::iUmass); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, __pyx_t_12, __pyx_n_s_U) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_XGOTREF(__pyx_v_8CoolProp_8CoolProp_paras);
  __Pyx_DECREF_SET(__pyx_v_8CoolProp_8CoolProp_paras, ((PyObject*)__pyx_t_11));
  __Pyx_GIVEREF(__pyx_t_11);
  __pyx_t_11 = 0;

  /* "CoolProp/CoolProp.pyx":607
 * }
 * 
 * cdef dict paras_inverse = {v:k for k,v in paras.iteritems()}             # <<<<<<<<<<<<<<
 * 
 * cdef class State:
 */
  { /* enter inner scope */
    __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 607, __pyx_L12_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_13 = 0;
    if (unlikely(__pyx_v_8CoolProp_8CoolProp_paras == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "iteritems");
      __PYX_ERR(0, 607, __pyx_L12_error)
    }
    __pyx_t_15 = __Pyx_dict_iterator(__pyx_v_8CoolProp_8CoolProp_paras, 1, __pyx_n_s_iteritems, (&__pyx_t_14), (&__pyx_t_7)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 607, __pyx_L12_error)
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_XDECREF(__pyx_t_12);
    __pyx_t_12 = __pyx_t_15;
    __pyx_t_15 = 0;
    while (1) {
      __pyx_t_17 = __Pyx_dict_iter_next(__pyx_t_12, __pyx_t_14, &__pyx_t_13, &__pyx_t_15, &__pyx_t_16, NULL, __pyx_t_7);
      if (unlikely(__pyx_t_17 == 0)) break;
      if (unlikely(__pyx_t_17 == -1)) __PYX_ERR(0, 607, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_XGOTREF(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k);
      __Pyx_DECREF_SET(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k, __pyx_t_15);
      __Pyx_GIVEREF(__pyx_t_15);
      __pyx_t_15 = 0;
      __Pyx_XGOTREF(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v);
      __Pyx_DECREF_SET(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v, __pyx_t_16);
      __Pyx_GIVEREF(__pyx_t_16);
      __pyx_t_16 = 0;
      if (unlikely(PyDict_SetItem(__pyx_t_11, (PyObject*)__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v, (PyObject*)__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k))) __PYX_ERR(0, 607, __pyx_L12_error)
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k);
    __Pyx_DECREF_SET(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k, Py_None);
    __Pyx_GOTREF(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v);
    __Pyx_DECREF_SET(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v, Py_None);
    goto __pyx_L15_exit_scope;
    __pyx_L12_error:;
    __Pyx_GOTREF(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k);
    __Pyx_DECREF_SET(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_k, Py_None);
    __Pyx_GOTREF(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v);
    __Pyx_DECREF_SET(__pyx_7genexpr__pyx_v_8CoolProp_8CoolProp_v, Py_None);
    goto __pyx_L1_error;
    __pyx_L15_exit_scope:;
  } /* exit inner scope */
  __Pyx_XGOTREF(__pyx_v_8CoolProp_8CoolProp_paras_inverse);
  __Pyx_DECREF_SET(__pyx_v_8CoolProp_8CoolProp_paras_inverse, ((PyObject*)__pyx_t_11));
  __Pyx_GIVEREF(__pyx_t_11);
  __pyx_t_11 = 0;

  /* "CoolProp/CoolProp.pyx":1098
 *         return S
 * 
 * def rebuildState(d):             # <<<<<<<<<<<<<<
 *     S=State(d['Fluid'],{'T':d['T'],'D':d['rho']},phase=d['phase'])
 *     return S
 */
  __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_83rebuildState, NULL, __pyx_n_s_CoolProp_CoolProp); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rebuildState, __pyx_t_11) < 0) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PyPhaseEnvelopeData(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_85__pyx_unpickle_PyPhaseEnvelopeData, NULL, __pyx_n_s_CoolProp_CoolProp); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PyPhaseEnvelopeDa, __pyx_t_11) < 0) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_PyPhaseEnvelopeData__set_state(<PyPhaseEnvelopeData> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyPhaseEnvelopeData__set_state(PyPhaseEnvelopeData __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.K = __pyx_state[0]; __pyx_result.Q = __pyx_state[1]; __pyx_result.T = __pyx_state[2]; __pyx_result.TypeI = __pyx_state[3]; __pyx_result.hmolar_liq = __pyx_state[4]; __pyx_result.hmolar_vap = __pyx_state[5]; __pyx_result.iTsat_max = __pyx_state[6]; __pyx_result.icrit = __pyx_state[7]; __pyx_result.ipsat_max = __pyx_state[8]; __pyx_result.lnT = __pyx_state[9]; __pyx_result.lnp = __pyx_state[10]; __pyx_result.lnrhomolar_liq = __pyx_state[11]; __pyx_result.lnrhomolar_vap = __pyx_state[12]; __pyx_result.p = __pyx_state[13]; __pyx_result.rhomolar_liq = __pyx_state[14]; __pyx_result.rhomolar_vap = __pyx_state[15]; __pyx_result.smolar_liq = __pyx_state[16]; __pyx_result.smolar_vap = __pyx_state[17]; __pyx_result.x = __pyx_state[18]; __pyx_result.y = __pyx_state[19]
 *     if len(__pyx_state) > 20 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_87__pyx_unpickle_PyCriticalState, NULL, __pyx_n_s_CoolProp_CoolProp); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PyCriticalState, __pyx_t_11) < 0) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PyGuessesStructure(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_89__pyx_unpickle_PyGuessesStructure, NULL, __pyx_n_s_CoolProp_CoolProp); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PyGuessesStructur, __pyx_t_11) < 0) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_PyGuessesStructure__set_state(<PyGuessesStructure> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PyGuessesStructure__set_state(PyGuessesStructure __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.T = __pyx_state[0]; __pyx_result.hmolar = __pyx_state[1]; __pyx_result.p = __pyx_state[2]; __pyx_result.rhomolar = __pyx_state[3]; __pyx_result.rhomolar_liq = __pyx_state[4]; __pyx_result.rhomolar_vap = __pyx_state[5]; __pyx_result.smolar = __pyx_state[6]; __pyx_result.x = __pyx_state[7]; __pyx_result.y = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_91__pyx_unpickle_PySpinodalData, NULL, __pyx_n_s_CoolProp_CoolProp); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PySpinodalData, __pyx_t_11) < 0) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_State(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_8CoolProp_8CoolProp_93__pyx_unpickle_State, NULL, __pyx_n_s_CoolProp_CoolProp); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_State, __pyx_t_11) < 0) __PYX_ERR(4, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "CoolProp/CoolProp.pyx":1
 * from __future__ import division             # <<<<<<<<<<<<<<
 * #
 * # This file provides wrapper functions of all the CoolProp functions
 */
  __pyx_t_11 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_11) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_std_3a__3a_string")
 * cdef vector[X] __pyx_convert_vector_from_py_std_3a__3a_string(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /*--- Wrapped vars code ---*/

  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_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_15);
  __Pyx_XDECREF(__pyx_t_16);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init CoolProp.CoolProp", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_CLEAR(__pyx_m);
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init CoolProp.CoolProp");
  }
  __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;
}

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

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

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

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

/* 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, int 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, nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, 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

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

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

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

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

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

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

/* 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_CheckExact(key)) || 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
                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(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
                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(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;
}

/* UnpackUnboundCMethod */
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    target->method = method;
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION >= 3
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    #endif
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    }
#endif
    return 0;
}

/* CallUnboundCMethod1 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
    if (likely(cfunc->func)) {
        int flag = cfunc->flag;
        if (flag == METH_O) {
            return (*(cfunc->func))(self, arg);
        } else if (PY_VERSION_HEX >= 0x030600B1 && flag == METH_FASTCALL) {
            if (PY_VERSION_HEX >= 0x030700A0) {
                return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1);
            } else {
                return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
            }
        } else if (PY_VERSION_HEX >= 0x030700A0 && flag == (METH_FASTCALL | METH_KEYWORDS)) {
            return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
        }
    }
    return __Pyx__CallUnboundCMethod1(cfunc, self, arg);
}
#endif
static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        args = PyTuple_New(1);
        if (unlikely(!args)) goto bad;
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 0, arg);
        if (cfunc->flag & METH_KEYWORDS)
            result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
        else
            result = (*cfunc->func)(self, args);
    } else {
        args = PyTuple_New(2);
        if (unlikely(!args)) goto bad;
        Py_INCREF(self);
        PyTuple_SET_ITEM(args, 0, self);
        Py_INCREF(arg);
        PyTuple_SET_ITEM(args, 1, arg);
        result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    }
#else
    args = PyTuple_Pack(2, self, arg);
    if (unlikely(!args)) goto bad;
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
#endif
bad:
    Py_XDECREF(args);
    return result;
}

/* CallUnboundCMethod0 */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_ASSUME_SAFE_MACROS
    args = PyTuple_New(1);
    if (unlikely(!args)) goto bad;
    Py_INCREF(self);
    PyTuple_SET_ITEM(args, 0, self);
#else
    args = PyTuple_Pack(1, self);
    if (unlikely(!args)) goto bad;
#endif
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    Py_DECREF(args);
bad:
    return result;
}

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

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

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    PyObject *kwdict,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    while (PyDict_Next(kwdict, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if ((!kw_allowed) && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
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
    return 0;
}

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

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

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (!j) return -1;
    r = PyObject_SetItem(o, j, v);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, 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) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
            PyObject* old = PyList_GET_ITEM(o, n);
            Py_INCREF(v);
            PyList_SET_ITEM(o, n, v);
            Py_DECREF(old);
            return 1;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_ass_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 -1;
                    PyErr_Clear();
                }
            }
            return m->sq_ass_item(o, i, v);
        }
    }
#else
#if CYTHON_COMPILING_IN_PYPY
    if (is_list || (PySequence_Check(o) && !PyDict_Check(o)))
#else
    if (is_list || PySequence_Check(o))
#endif
    {
        return PySequence_SetItem(o, i, v);
    }
#endif
    return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
}

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (descr != NULL) {
        *method = descr;
        return 0;
    }
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(name));
#endif
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod0 */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* RaiseNoneIterError */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* UnpackTupleError */
static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
    if (t == Py_None) {
      __Pyx_RaiseNoneNotIterableError();
    } else if (PyTuple_GET_SIZE(t) < index) {
      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
    } else {
      __Pyx_RaiseTooManyValuesError(index);
    }
}

/* UnpackTuple2 */
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
    PyObject *value1 = NULL, *value2 = NULL;
#if CYTHON_COMPILING_IN_PYPY
    value1 = PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
    value2 = PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
#else
    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
#endif
    if (decref_tuple) {
        Py_DECREF(tuple);
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
#if CYTHON_COMPILING_IN_PYPY
bad:
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
#endif
}
static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                       int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    iternextfunc iternext;
    iter = PyObject_GetIter(tuple);
    if (unlikely(!iter)) goto bad;
    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
    iternext = Py_TYPE(iter)->tp_iternext;
    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
    Py_DECREF(iter);
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
    if (is_dict) {
#if !CYTHON_COMPILING_IN_PYPY
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
#elif PY_MAJOR_VERSION >= 3
        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
        PyObject **pp = NULL;
        if (method_name) {
            const char *name = PyUnicode_AsUTF8(method_name);
            if (strcmp(name, "iteritems") == 0) pp = &py_items;
            else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
            else if (strcmp(name, "itervalues") == 0) pp = &py_values;
            if (pp) {
                if (!*pp) {
                    *pp = PyUnicode_FromString(name + 4);
                    if (!*pp)
                        return NULL;
                }
                method_name = *pp;
            }
        }
#endif
    }
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_COMPILING_IN_PYPY
    if (source_is_dict) {
        PyObject *key, *value;
        if (unlikely(orig_length != PyDict_Size(iter_obj))) {
            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
            return -1;
        }
        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
            return 0;
        }
        if (pitem) {
            PyObject* tuple = PyTuple_New(2);
            if (unlikely(!tuple)) {
                return -1;
            }
            Py_INCREF(key);
            Py_INCREF(value);
            PyTuple_SET_ITEM(tuple, 0, key);
            PyTuple_SET_ITEM(tuple, 1, value);
            *pitem = tuple;
        } else {
            if (pkey) {
                Py_INCREF(key);
                *pkey = key;
            }
            if (pvalue) {
                Py_INCREF(value);
                *pvalue = value;
            }
        }
        return 1;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyList_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

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

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

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

/* StringJoin */
#if !CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) {
    return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL);
}
#endif

/* py_dict_items */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_items, d);
    else
        return PyDict_Items(d);
}

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

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

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

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

/* 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 GOOD;
#else
    if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD;
#endif
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto 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 BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD;
            ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD;
            ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto 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_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD;
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD;
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto GOOD;
BAD:
    if (!PyErr_Occurred())
        PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
    ret = -1;
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;
}

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

/* FetchCommonType */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* fake_module;
    PyTypeObject* cached_type = NULL;
    fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
    if (!fake_module) return NULL;
    Py_INCREF(fake_module);
    cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
    if (cached_type) {
        if (!PyType_Check((PyObject*)cached_type)) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s is not a type object",
                type->tp_name);
            goto bad;
        }
        if (cached_type->tp_basicsize != type->tp_basicsize) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s has the wrong size, try recompiling",
                type->tp_name);
            goto bad;
        }
    } else {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
        PyErr_Clear();
        if (PyType_Ready(type) < 0) goto bad;
        if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
            goto bad;
        Py_INCREF(type);
        cached_type = type;
    }
done:
    Py_DECREF(fake_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CythonFunction */
#include <structmember.h>
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
{
    if (unlikely(op->func_doc == NULL)) {
        if (op->func.m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp = op->func_doc;
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    op->func_doc = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_name == NULL)) {
#if PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = op->func_name;
    Py_INCREF(value);
    op->func_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = op->func_qualname;
    Py_INCREF(value);
    op->func_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
{
    PyObject *self;
    self = m->func_closure;
    if (self == NULL)
        self = Py_None;
    Py_INCREF(self);
    return self;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    tmp = op->func_dict;
    Py_INCREF(value);
    op->func_dict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyTuple_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_tuple;
    op->defaults_tuple = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_kwdict;
    op->defaults_kwdict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value || value == Py_None) {
        value = NULL;
    } else if (!PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    tmp = op->func_annotations;
    op->func_annotations = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromString(m->func.m_ml->ml_name);
#else
    return PyString_FromString(m->func.m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type);
    if (op == NULL)
        return NULL;
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
    op->func.m_ml = ml;
    op->func.m_self = (PyObject *) op;
    Py_XINCREF(closure);
    op->func_closure = closure;
    Py_XINCREF(module);
    op->func.m_module = module;
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
    op->func_classobj = NULL;
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    PyObject_GC_Track(op);
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
    Py_CLEAR(m->func.m_module);
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
    Py_CLEAR(m->func_classobj);
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    PyObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
    Py_VISIT(m->func.m_module);
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
    Py_VISIT(m->func_classobj);
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(func);
        return func;
    }
    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
        if (type == NULL)
            type = (PyObject *)(Py_TYPE(obj));
        return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
    return __Pyx_PyMethod_New(func, obj, type);
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    Py_ssize_t size;
    switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 0))
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags in "
                        "__Pyx_CyFunction_Call. METH_OLDARGS is no "
                        "longer supported!");
        return NULL;
    }
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
        argc = PyTuple_GET_SIZE(args);
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_CyFunction_descr_get,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
};
static int __pyx_CyFunction_init(void) {
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* FusedFunction */
static PyObject *
__pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags,
                        PyObject *qualname, PyObject *self,
                        PyObject *module, PyObject *globals,
                        PyObject *code)
{
    __pyx_FusedFunctionObject *fusedfunc =
        (__pyx_FusedFunctionObject *) __Pyx_CyFunction_New(type, ml, flags, qualname,
                                                           self, module, globals, code);
    if (!fusedfunc)
        return NULL;
    fusedfunc->__signatures__ = NULL;
    fusedfunc->type = NULL;
    fusedfunc->self = NULL;
    return (PyObject *) fusedfunc;
}
static void
__pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self)
{
    PyObject_GC_UnTrack(self);
    Py_CLEAR(self->self);
    Py_CLEAR(self->type);
    Py_CLEAR(self->__signatures__);
    __Pyx__CyFunction_dealloc((__pyx_CyFunctionObject *) self);
}
static int
__pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self,
                             visitproc visit,
                             void *arg)
{
    Py_VISIT(self->self);
    Py_VISIT(self->type);
    Py_VISIT(self->__signatures__);
    return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg);
}
static int
__pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self)
{
    Py_CLEAR(self->self);
    Py_CLEAR(self->type);
    Py_CLEAR(self->__signatures__);
    return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self);
}
static PyObject *
__pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type)
{
    __pyx_FusedFunctionObject *func, *meth;
    func = (__pyx_FusedFunctionObject *) self;
    if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(self);
        return self;
    }
    if (obj == Py_None)
        obj = NULL;
    meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_NewEx(
                    ((PyCFunctionObject *) func)->m_ml,
                    ((__pyx_CyFunctionObject *) func)->flags,
                    ((__pyx_CyFunctionObject *) func)->func_qualname,
                    ((__pyx_CyFunctionObject *) func)->func_closure,
                    ((PyCFunctionObject *) func)->m_module,
                    ((__pyx_CyFunctionObject *) func)->func_globals,
                    ((__pyx_CyFunctionObject *) func)->func_code);
    if (!meth)
        return NULL;
    Py_XINCREF(func->func.func_classobj);
    meth->func.func_classobj = func->func.func_classobj;
    Py_XINCREF(func->__signatures__);
    meth->__signatures__ = func->__signatures__;
    Py_XINCREF(type);
    meth->type = type;
    Py_XINCREF(func->func.defaults_tuple);
    meth->func.defaults_tuple = func->func.defaults_tuple;
    if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD)
        obj = type;
    Py_XINCREF(obj);
    meth->self = obj;
    return (PyObject *) meth;
}
static PyObject *
_obj_to_str(PyObject *obj)
{
    if (PyType_Check(obj))
        return PyObject_GetAttr(obj, __pyx_n_s_name_2);
    else
        return PyObject_Str(obj);
}
static PyObject *
__pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx)
{
    PyObject *signature = NULL;
    PyObject *unbound_result_func;
    PyObject *result_func = NULL;
    if (self->__signatures__ == NULL) {
        PyErr_SetString(PyExc_TypeError, "Function is not fused");
        return NULL;
    }
    if (PyTuple_Check(idx)) {
        PyObject *list = PyList_New(0);
        Py_ssize_t n = PyTuple_GET_SIZE(idx);
        PyObject *string = NULL;
        PyObject *sep = NULL;
        int i;
        if (!list)
            return NULL;
        for (i = 0; i < n; i++) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            PyObject *item = PyTuple_GET_ITEM(idx, i);
#else
            PyObject *item = PySequence_ITEM(idx, i);
#endif
            string = _obj_to_str(item);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
            Py_DECREF(item);
#endif
            if (!string || PyList_Append(list, string) < 0)
                goto __pyx_err;
            Py_DECREF(string);
        }
        sep = PyUnicode_FromString("|");
        if (sep)
            signature = PyUnicode_Join(sep, list);
__pyx_err:
;
        Py_DECREF(list);
        Py_XDECREF(sep);
    } else {
        signature = _obj_to_str(idx);
    }
    if (!signature)
        return NULL;
    unbound_result_func = PyObject_GetItem(self->__signatures__, signature);
    if (unbound_result_func) {
        if (self->self || self->type) {
            __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func;
            Py_CLEAR(unbound->func.func_classobj);
            Py_XINCREF(self->func.func_classobj);
            unbound->func.func_classobj = self->func.func_classobj;
            result_func = __pyx_FusedFunction_descr_get(unbound_result_func,
                                                        self->self, self->type);
        } else {
            result_func = unbound_result_func;
            Py_INCREF(result_func);
        }
    }
    Py_DECREF(signature);
    Py_XDECREF(unbound_result_func);
    return result_func;
}
static PyObject *
__pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw)
{
     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD &&
                              !((__pyx_FusedFunctionObject *) func)->__signatures__);
    if (cyfunc->flags & __Pyx_CYFUNCTION_CCLASS && !static_specialized) {
        return __Pyx_CyFunction_CallAsMethod(func, args, kw);
    } else {
        return __Pyx_CyFunction_Call(func, args, kw);
    }
}
static PyObject *
__pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw)
{
    __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func;
    Py_ssize_t argc = PyTuple_GET_SIZE(args);
    PyObject *new_args = NULL;
    __pyx_FusedFunctionObject *new_func = NULL;
    PyObject *result = NULL;
    PyObject *self = NULL;
    int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD;
    int is_classmethod = binding_func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD;
    if (binding_func->self) {
        Py_ssize_t i;
        new_args = PyTuple_New(argc + 1);
        if (!new_args)
            return NULL;
        self = binding_func->self;
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_INCREF(self);
#endif
        Py_INCREF(self);
        PyTuple_SET_ITEM(new_args, 0, self);
        for (i = 0; i < argc; i++) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            PyObject *item = PyTuple_GET_ITEM(args, i);
            Py_INCREF(item);
#else
            PyObject *item = PySequence_ITEM(args, i);  if (unlikely(!item)) goto bad;
#endif
            PyTuple_SET_ITEM(new_args, i + 1, item);
        }
        args = new_args;
    } else if (binding_func->type) {
        if (argc < 1) {
            PyErr_SetString(PyExc_TypeError, "Need at least one argument, 0 given.");
            return NULL;
        }
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        self = PyTuple_GET_ITEM(args, 0);
#else
        self = PySequence_ITEM(args, 0);  if (unlikely(!self)) return NULL;
#endif
    }
    if (self && !is_classmethod && !is_staticmethod) {
        int is_instance = PyObject_IsInstance(self, binding_func->type);
        if (unlikely(!is_instance)) {
            PyErr_Format(PyExc_TypeError,
                         "First argument should be of type %.200s, got %.200s.",
                         ((PyTypeObject *) binding_func->type)->tp_name,
                         self->ob_type->tp_name);
            goto bad;
        } else if (unlikely(is_instance == -1)) {
            goto bad;
        }
    }
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
    Py_XDECREF(self);
    self = NULL;
#endif
    if (binding_func->__signatures__) {
        PyObject *tup;
        if (is_staticmethod && binding_func->func.flags & __Pyx_CYFUNCTION_CCLASS) {
            tup = PyTuple_Pack(3, args,
                               kw == NULL ? Py_None : kw,
                               binding_func->func.defaults_tuple);
            if (unlikely(!tup)) goto bad;
            new_func = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_CallMethod(
                func, binding_func->__signatures__, tup, NULL);
        } else {
            tup = PyTuple_Pack(4, binding_func->__signatures__, args,
                               kw == NULL ? Py_None : kw,
                               binding_func->func.defaults_tuple);
            if (unlikely(!tup)) goto bad;
            new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL);
        }
        Py_DECREF(tup);
        if (unlikely(!new_func))
            goto bad;
        Py_XINCREF(binding_func->func.func_classobj);
        Py_CLEAR(new_func->func.func_classobj);
        new_func->func.func_classobj = binding_func->func.func_classobj;
        func = (PyObject *) new_func;
    }
    result = __pyx_FusedFunction_callfunction(func, args, kw);
bad:
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
    Py_XDECREF(self);
#endif
    Py_XDECREF(new_args);
    Py_XDECREF((PyObject *) new_func);
    return result;
}
static PyMemberDef __pyx_FusedFunction_members[] = {
    {(char *) "__signatures__",
     T_OBJECT,
     offsetof(__pyx_FusedFunctionObject, __signatures__),
     READONLY,
     0},
    {0, 0, 0, 0, 0},
};
static PyMappingMethods __pyx_FusedFunction_mapping_methods = {
    0,
    (binaryfunc) __pyx_FusedFunction_getitem,
    0,
};
static PyTypeObject __pyx_FusedFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "fused_cython_function",
    sizeof(__pyx_FusedFunctionObject),
    0,
    (destructor) __pyx_FusedFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    0,
    0,
    0,
    &__pyx_FusedFunction_mapping_methods,
    0,
    (ternaryfunc) __pyx_FusedFunction_call,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    0,
    (traverseproc) __pyx_FusedFunction_traverse,
    (inquiry) __pyx_FusedFunction_clear,
    0,
    0,
    0,
    0,
    0,
    __pyx_FusedFunction_members,
    __pyx_CyFunction_getsets,
    &__pyx_CyFunctionType_type,
    0,
    __pyx_FusedFunction_descr_get,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
};
static int __pyx_FusedFunction_init(void) {
    __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type);
    if (__pyx_FusedFunctionType == NULL) {
        return -1;
    }
    return 0;
}

/* CLineInTraceback */
#ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(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);
}

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

/* 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_CoolProp_3a__3a_parameters(CoolProp::parameters value) {
    const CoolProp::parameters neg_one = (CoolProp::parameters) ((CoolProp::parameters) 0 - (CoolProp::parameters) 1), const_zero = (CoolProp::parameters) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(CoolProp::parameters) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(CoolProp::parameters) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(CoolProp::parameters) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(CoolProp::parameters) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(CoolProp::parameters) <= 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(CoolProp::parameters),
                                     little, !is_unsigned);
    }
}

/* 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_CoolProp_3a__3a_phases(CoolProp::phases value) {
    const CoolProp::phases neg_one = (CoolProp::phases) ((CoolProp::phases) 0 - (CoolProp::phases) 1), const_zero = (CoolProp::phases) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(CoolProp::phases) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(CoolProp::phases) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(CoolProp::phases) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(CoolProp::phases) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(CoolProp::phases) <= 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(CoolProp::phases),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_short(short value) {
    const short neg_one = (short) ((short) 0 - (short) 1), const_zero = (short) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(short) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(short) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(short) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(short) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(short) <= 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(short),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_CoolProp_3a__3a_input_pairs(CoolProp::input_pairs value) {
    const CoolProp::input_pairs neg_one = (CoolProp::input_pairs) ((CoolProp::input_pairs) 0 - (CoolProp::input_pairs) 1), const_zero = (CoolProp::input_pairs) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(CoolProp::input_pairs) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(CoolProp::input_pairs) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(CoolProp::input_pairs) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(CoolProp::input_pairs) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(CoolProp::input_pairs) <= 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(CoolProp::input_pairs),
                                     little, !is_unsigned);
    }
}

/* Print */
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
static PyObject *__Pyx_GetStdout(void) {
    PyObject *f = PySys_GetObject((char *)"stdout");
    if (!f) {
        PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
    }
    return f;
}
static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) {
    int i;
    if (!f) {
        if (!(f = __Pyx_GetStdout()))
            return -1;
    }
    Py_INCREF(f);
    for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) {
        PyObject* v;
        if (PyFile_SoftSpace(f, 1)) {
            if (PyFile_WriteString(" ", f) < 0)
                goto error;
        }
        v = PyTuple_GET_ITEM(arg_tuple, i);
        if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0)
            goto error;
        if (PyString_Check(v)) {
            char *s = PyString_AsString(v);
            Py_ssize_t len = PyString_Size(v);
            if (len > 0) {
                switch (s[len-1]) {
                    case ' ': break;
                    case '\f': case '\r': case '\n': case '\t': case '\v':
                        PyFile_SoftSpace(f, 0);
                        break;
                    default:  break;
                }
            }
        }
    }
    if (newline) {
        if (PyFile_WriteString("\n", f) < 0)
            goto error;
        PyFile_SoftSpace(f, 0);
    }
    Py_DECREF(f);
    return 0;
error:
    Py_DECREF(f);
    return -1;
}
#else
static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) {
    PyObject* kwargs = 0;
    PyObject* result = 0;
    PyObject* end_string;
    if (unlikely(!__pyx_print)) {
        __pyx_print = PyObject_GetAttr(__pyx_b, __pyx_n_s_print);
        if (!__pyx_print)
            return -1;
    }
    if (stream) {
        kwargs = PyDict_New();
        if (unlikely(!kwargs))
            return -1;
        if (unlikely(PyDict_SetItem(kwargs, __pyx_n_s_file, stream) < 0))
            goto bad;
        if (!newline) {
            end_string = PyUnicode_FromStringAndSize(" ", 1);
            if (unlikely(!end_string))
                goto bad;
            if (PyDict_SetItem(kwargs, __pyx_n_s_end, end_string) < 0) {
                Py_DECREF(end_string);
                goto bad;
            }
            Py_DECREF(end_string);
        }
    } else if (!newline) {
        if (unlikely(!__pyx_print_kwargs)) {
            __pyx_print_kwargs = PyDict_New();
            if (unlikely(!__pyx_print_kwargs))
                return -1;
            end_string = PyUnicode_FromStringAndSize(" ", 1);
            if (unlikely(!end_string))
                return -1;
            if (PyDict_SetItem(__pyx_print_kwargs, __pyx_n_s_end, end_string) < 0) {
                Py_DECREF(end_string);
                return -1;
            }
            Py_DECREF(end_string);
        }
        kwargs = __pyx_print_kwargs;
    }
    result = PyObject_Call(__pyx_print, arg_tuple, kwargs);
    if (unlikely(kwargs) && (kwargs != __pyx_print_kwargs))
        Py_DECREF(kwargs);
    if (!result)
        return -1;
    Py_DECREF(result);
    return 0;
bad:
    if (kwargs != __pyx_print_kwargs)
        Py_XDECREF(kwargs);
    return -1;
}
#endif

/* 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 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 CoolProp::phases __Pyx_PyInt_As_CoolProp_3a__3a_phases(PyObject *x) {
    const CoolProp::phases neg_one = (CoolProp::phases) ((CoolProp::phases) 0 - (CoolProp::phases) 1), const_zero = (CoolProp::phases) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(CoolProp::phases) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(CoolProp::phases, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (CoolProp::phases) 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 (CoolProp::phases) 0;
                case  1: __PYX_VERIFY_RETURN_INT(CoolProp::phases, digit, digits[0])
                case 2:
                    if (8 * sizeof(CoolProp::phases) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::phases) >= 2 * PyLong_SHIFT) {
                            return (CoolProp::phases) (((((CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(CoolProp::phases) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::phases) >= 3 * PyLong_SHIFT) {
                            return (CoolProp::phases) (((((((CoolProp::phases)digits[2]) << PyLong_SHIFT) | (CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(CoolProp::phases) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, 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(CoolProp::phases) >= 4 * PyLong_SHIFT) {
                            return (CoolProp::phases) (((((((((CoolProp::phases)digits[3]) << PyLong_SHIFT) | (CoolProp::phases)digits[2]) << PyLong_SHIFT) | (CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)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 (CoolProp::phases) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(CoolProp::phases) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::phases, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(CoolProp::phases) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::phases, 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 (CoolProp::phases) 0;
                case -1: __PYX_VERIFY_RETURN_INT(CoolProp::phases, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(CoolProp::phases,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(CoolProp::phases) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::phases) - 1 > 2 * PyLong_SHIFT) {
                            return (CoolProp::phases) (((CoolProp::phases)-1)*(((((CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(CoolProp::phases) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::phases) - 1 > 2 * PyLong_SHIFT) {
                            return (CoolProp::phases) ((((((CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(CoolProp::phases) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::phases) - 1 > 3 * PyLong_SHIFT) {
                            return (CoolProp::phases) (((CoolProp::phases)-1)*(((((((CoolProp::phases)digits[2]) << PyLong_SHIFT) | (CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(CoolProp::phases) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::phases) - 1 > 3 * PyLong_SHIFT) {
                            return (CoolProp::phases) ((((((((CoolProp::phases)digits[2]) << PyLong_SHIFT) | (CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(CoolProp::phases) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, 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(CoolProp::phases) - 1 > 4 * PyLong_SHIFT) {
                            return (CoolProp::phases) (((CoolProp::phases)-1)*(((((((((CoolProp::phases)digits[3]) << PyLong_SHIFT) | (CoolProp::phases)digits[2]) << PyLong_SHIFT) | (CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(CoolProp::phases) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::phases, 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(CoolProp::phases) - 1 > 4 * PyLong_SHIFT) {
                            return (CoolProp::phases) ((((((((((CoolProp::phases)digits[3]) << PyLong_SHIFT) | (CoolProp::phases)digits[2]) << PyLong_SHIFT) | (CoolProp::phases)digits[1]) << PyLong_SHIFT) | (CoolProp::phases)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(CoolProp::phases) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::phases, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(CoolProp::phases) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::phases, 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
            CoolProp::phases 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 (CoolProp::phases) -1;
        }
    } else {
        CoolProp::phases val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (CoolProp::phases) -1;
        val = __Pyx_PyInt_As_CoolProp_3a__3a_phases(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to CoolProp::phases");
    return (CoolProp::phases) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to CoolProp::phases");
    return (CoolProp::phases) -1;
}

/* CIntFromPy */
static CYTHON_INLINE short __Pyx_PyInt_As_short(PyObject *x) {
    const short neg_one = (short) ((short) 0 - (short) 1), const_zero = (short) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(short) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(short, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (short) 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 (short) 0;
                case  1: __PYX_VERIFY_RETURN_INT(short, digit, digits[0])
                case 2:
                    if (8 * sizeof(short) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(short) >= 2 * PyLong_SHIFT) {
                            return (short) (((((short)digits[1]) << PyLong_SHIFT) | (short)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(short) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(short) >= 3 * PyLong_SHIFT) {
                            return (short) (((((((short)digits[2]) << PyLong_SHIFT) | (short)digits[1]) << PyLong_SHIFT) | (short)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(short) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, 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(short) >= 4 * PyLong_SHIFT) {
                            return (short) (((((((((short)digits[3]) << PyLong_SHIFT) | (short)digits[2]) << PyLong_SHIFT) | (short)digits[1]) << PyLong_SHIFT) | (short)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 (short) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(short) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(short, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(short) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(short, 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 (short) 0;
                case -1: __PYX_VERIFY_RETURN_INT(short, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(short,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(short) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(short) - 1 > 2 * PyLong_SHIFT) {
                            return (short) (((short)-1)*(((((short)digits[1]) << PyLong_SHIFT) | (short)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(short) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(short) - 1 > 2 * PyLong_SHIFT) {
                            return (short) ((((((short)digits[1]) << PyLong_SHIFT) | (short)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(short) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(short) - 1 > 3 * PyLong_SHIFT) {
                            return (short) (((short)-1)*(((((((short)digits[2]) << PyLong_SHIFT) | (short)digits[1]) << PyLong_SHIFT) | (short)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(short) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(short) - 1 > 3 * PyLong_SHIFT) {
                            return (short) ((((((((short)digits[2]) << PyLong_SHIFT) | (short)digits[1]) << PyLong_SHIFT) | (short)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(short) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, 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(short) - 1 > 4 * PyLong_SHIFT) {
                            return (short) (((short)-1)*(((((((((short)digits[3]) << PyLong_SHIFT) | (short)digits[2]) << PyLong_SHIFT) | (short)digits[1]) << PyLong_SHIFT) | (short)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(short) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(short, 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(short) - 1 > 4 * PyLong_SHIFT) {
                            return (short) ((((((((((short)digits[3]) << PyLong_SHIFT) | (short)digits[2]) << PyLong_SHIFT) | (short)digits[1]) << PyLong_SHIFT) | (short)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(short) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(short, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(short) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(short, 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
            short 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 (short) -1;
        }
    } else {
        short val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (short) -1;
        val = __Pyx_PyInt_As_short(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to short");
    return (short) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to short");
    return (short) -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 CoolProp::input_pairs __Pyx_PyInt_As_CoolProp_3a__3a_input_pairs(PyObject *x) {
    const CoolProp::input_pairs neg_one = (CoolProp::input_pairs) ((CoolProp::input_pairs) 0 - (CoolProp::input_pairs) 1), const_zero = (CoolProp::input_pairs) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(CoolProp::input_pairs) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (CoolProp::input_pairs) 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 (CoolProp::input_pairs) 0;
                case  1: __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, digit, digits[0])
                case 2:
                    if (8 * sizeof(CoolProp::input_pairs) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::input_pairs) >= 2 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) (((((CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(CoolProp::input_pairs) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::input_pairs) >= 3 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) (((((((CoolProp::input_pairs)digits[2]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(CoolProp::input_pairs) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, 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(CoolProp::input_pairs) >= 4 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) (((((((((CoolProp::input_pairs)digits[3]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[2]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)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 (CoolProp::input_pairs) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(CoolProp::input_pairs) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::input_pairs, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(CoolProp::input_pairs) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::input_pairs, 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 (CoolProp::input_pairs) 0;
                case -1: __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(CoolProp::input_pairs) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::input_pairs) - 1 > 2 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) (((CoolProp::input_pairs)-1)*(((((CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(CoolProp::input_pairs) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::input_pairs) - 1 > 2 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) ((((((CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(CoolProp::input_pairs) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::input_pairs) - 1 > 3 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) (((CoolProp::input_pairs)-1)*(((((((CoolProp::input_pairs)digits[2]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(CoolProp::input_pairs) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::input_pairs) - 1 > 3 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) ((((((((CoolProp::input_pairs)digits[2]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(CoolProp::input_pairs) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, 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(CoolProp::input_pairs) - 1 > 4 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) (((CoolProp::input_pairs)-1)*(((((((((CoolProp::input_pairs)digits[3]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[2]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(CoolProp::input_pairs) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::input_pairs, 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(CoolProp::input_pairs) - 1 > 4 * PyLong_SHIFT) {
                            return (CoolProp::input_pairs) ((((((((((CoolProp::input_pairs)digits[3]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[2]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[1]) << PyLong_SHIFT) | (CoolProp::input_pairs)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(CoolProp::input_pairs) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::input_pairs, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(CoolProp::input_pairs) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::input_pairs, 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
            CoolProp::input_pairs 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 (CoolProp::input_pairs) -1;
        }
    } else {
        CoolProp::input_pairs val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (CoolProp::input_pairs) -1;
        val = __Pyx_PyInt_As_CoolProp_3a__3a_input_pairs(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to CoolProp::input_pairs");
    return (CoolProp::input_pairs) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to CoolProp::input_pairs");
    return (CoolProp::input_pairs) -1;
}

/* CIntFromPy */
static CYTHON_INLINE CoolProp::parameters __Pyx_PyInt_As_CoolProp_3a__3a_parameters(PyObject *x) {
    const CoolProp::parameters neg_one = (CoolProp::parameters) ((CoolProp::parameters) 0 - (CoolProp::parameters) 1), const_zero = (CoolProp::parameters) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(CoolProp::parameters) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (CoolProp::parameters) 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 (CoolProp::parameters) 0;
                case  1: __PYX_VERIFY_RETURN_INT(CoolProp::parameters, digit, digits[0])
                case 2:
                    if (8 * sizeof(CoolProp::parameters) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::parameters) >= 2 * PyLong_SHIFT) {
                            return (CoolProp::parameters) (((((CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(CoolProp::parameters) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::parameters) >= 3 * PyLong_SHIFT) {
                            return (CoolProp::parameters) (((((((CoolProp::parameters)digits[2]) << PyLong_SHIFT) | (CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(CoolProp::parameters) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, 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(CoolProp::parameters) >= 4 * PyLong_SHIFT) {
                            return (CoolProp::parameters) (((((((((CoolProp::parameters)digits[3]) << PyLong_SHIFT) | (CoolProp::parameters)digits[2]) << PyLong_SHIFT) | (CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)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 (CoolProp::parameters) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(CoolProp::parameters) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::parameters, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(CoolProp::parameters) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::parameters, 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 (CoolProp::parameters) 0;
                case -1: __PYX_VERIFY_RETURN_INT(CoolProp::parameters, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(CoolProp::parameters,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(CoolProp::parameters) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::parameters) - 1 > 2 * PyLong_SHIFT) {
                            return (CoolProp::parameters) (((CoolProp::parameters)-1)*(((((CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(CoolProp::parameters) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::parameters) - 1 > 2 * PyLong_SHIFT) {
                            return (CoolProp::parameters) ((((((CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(CoolProp::parameters) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::parameters) - 1 > 3 * PyLong_SHIFT) {
                            return (CoolProp::parameters) (((CoolProp::parameters)-1)*(((((((CoolProp::parameters)digits[2]) << PyLong_SHIFT) | (CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(CoolProp::parameters) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(CoolProp::parameters) - 1 > 3 * PyLong_SHIFT) {
                            return (CoolProp::parameters) ((((((((CoolProp::parameters)digits[2]) << PyLong_SHIFT) | (CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(CoolProp::parameters) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, 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(CoolProp::parameters) - 1 > 4 * PyLong_SHIFT) {
                            return (CoolProp::parameters) (((CoolProp::parameters)-1)*(((((((((CoolProp::parameters)digits[3]) << PyLong_SHIFT) | (CoolProp::parameters)digits[2]) << PyLong_SHIFT) | (CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(CoolProp::parameters) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(CoolProp::parameters, 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(CoolProp::parameters) - 1 > 4 * PyLong_SHIFT) {
                            return (CoolProp::parameters) ((((((((((CoolProp::parameters)digits[3]) << PyLong_SHIFT) | (CoolProp::parameters)digits[2]) << PyLong_SHIFT) | (CoolProp::parameters)digits[1]) << PyLong_SHIFT) | (CoolProp::parameters)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(CoolProp::parameters) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::parameters, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(CoolProp::parameters) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(CoolProp::parameters, 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
            CoolProp::parameters 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 (CoolProp::parameters) -1;
        }
    } else {
        CoolProp::parameters val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (CoolProp::parameters) -1;
        val = __Pyx_PyInt_As_CoolProp_3a__3a_parameters(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to CoolProp::parameters");
    return (CoolProp::parameters) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to CoolProp::parameters");
    return (CoolProp::parameters) -1;
}

/* CIntFromPy */
static CYTHON_INLINE configuration_keys __Pyx_PyInt_As_configuration_keys(PyObject *x) {
    const configuration_keys neg_one = (configuration_keys) ((configuration_keys) 0 - (configuration_keys) 1), const_zero = (configuration_keys) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(configuration_keys) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(configuration_keys, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (configuration_keys) 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 (configuration_keys) 0;
                case  1: __PYX_VERIFY_RETURN_INT(configuration_keys, digit, digits[0])
                case 2:
                    if (8 * sizeof(configuration_keys) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(configuration_keys) >= 2 * PyLong_SHIFT) {
                            return (configuration_keys) (((((configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(configuration_keys) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(configuration_keys) >= 3 * PyLong_SHIFT) {
                            return (configuration_keys) (((((((configuration_keys)digits[2]) << PyLong_SHIFT) | (configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(configuration_keys) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, 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(configuration_keys) >= 4 * PyLong_SHIFT) {
                            return (configuration_keys) (((((((((configuration_keys)digits[3]) << PyLong_SHIFT) | (configuration_keys)digits[2]) << PyLong_SHIFT) | (configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)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 (configuration_keys) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(configuration_keys) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(configuration_keys, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(configuration_keys) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(configuration_keys, 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 (configuration_keys) 0;
                case -1: __PYX_VERIFY_RETURN_INT(configuration_keys, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(configuration_keys,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(configuration_keys) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(configuration_keys) - 1 > 2 * PyLong_SHIFT) {
                            return (configuration_keys) (((configuration_keys)-1)*(((((configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(configuration_keys) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(configuration_keys) - 1 > 2 * PyLong_SHIFT) {
                            return (configuration_keys) ((((((configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(configuration_keys) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(configuration_keys) - 1 > 3 * PyLong_SHIFT) {
                            return (configuration_keys) (((configuration_keys)-1)*(((((((configuration_keys)digits[2]) << PyLong_SHIFT) | (configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(configuration_keys) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(configuration_keys) - 1 > 3 * PyLong_SHIFT) {
                            return (configuration_keys) ((((((((configuration_keys)digits[2]) << PyLong_SHIFT) | (configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(configuration_keys) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, 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(configuration_keys) - 1 > 4 * PyLong_SHIFT) {
                            return (configuration_keys) (((configuration_keys)-1)*(((((((((configuration_keys)digits[3]) << PyLong_SHIFT) | (configuration_keys)digits[2]) << PyLong_SHIFT) | (configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(configuration_keys) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(configuration_keys, 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(configuration_keys) - 1 > 4 * PyLong_SHIFT) {
                            return (configuration_keys) ((((((((((configuration_keys)digits[3]) << PyLong_SHIFT) | (configuration_keys)digits[2]) << PyLong_SHIFT) | (configuration_keys)digits[1]) << PyLong_SHIFT) | (configuration_keys)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(configuration_keys) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(configuration_keys, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(configuration_keys) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(configuration_keys, 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
            configuration_keys 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 (configuration_keys) -1;
        }
    } else {
        configuration_keys val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (configuration_keys) -1;
        val = __Pyx_PyInt_As_configuration_keys(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to configuration_keys");
    return (configuration_keys) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to configuration_keys");
    return (configuration_keys) -1;
}

/* PrintOne */
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
static int __Pyx_PrintOne(PyObject* f, PyObject *o) {
    if (!f) {
        if (!(f = __Pyx_GetStdout()))
            return -1;
    }
    Py_INCREF(f);
    if (PyFile_SoftSpace(f, 0)) {
        if (PyFile_WriteString(" ", f) < 0)
            goto error;
    }
    if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0)
        goto error;
    if (PyFile_WriteString("\n", f) < 0)
        goto error;
    Py_DECREF(f);
    return 0;
error:
    Py_DECREF(f);
    return -1;
    /* the line below is just to avoid C compiler
     * warnings about unused functions */
    return __Pyx_Print(f, NULL, 0);
}
#else
static int __Pyx_PrintOne(PyObject* stream, PyObject *o) {
    int res;
    PyObject* arg_tuple = PyTuple_Pack(1, o);
    if (unlikely(!arg_tuple))
        return -1;
    res = __Pyx_Print(stream, arg_tuple, 1);
    Py_DECREF(arg_tuple);
    return res;
}
#endif

/* ImportNumPyArray */
static PyObject* __Pyx__ImportNumPyArray(void) {
    PyObject *numpy_module, *ndarray_object = NULL;
    numpy_module = __Pyx_Import(__pyx_n_s_numpy, NULL, 0);
    if (likely(numpy_module)) {
        ndarray_object = PyObject_GetAttrString(numpy_module, "ndarray");
        Py_DECREF(numpy_module);
    }
    if (unlikely(!ndarray_object)) {
        PyErr_Clear();
    }
    if (unlikely(!ndarray_object || !PyObject_TypeCheck(ndarray_object, &PyType_Type))) {
        Py_XDECREF(ndarray_object);
        Py_INCREF(Py_None);
        ndarray_object = Py_None;
    }
    return ndarray_object;
}
static CYTHON_INLINE PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void) {
    if (unlikely(!__pyx_numpy_ndarray)) {
        __pyx_numpy_ndarray = __Pyx__ImportNumPyArray();
    }
    Py_INCREF(__pyx_numpy_ndarray);
    return __pyx_numpy_ndarray;
}

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

/* CStringEquals */
static CYTHON_INLINE int __Pyx_StrEq(const char *s1, const char *s2) {
    while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
    return *s1 == *s2;
}

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

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