1/* ------------------------------------------------------------ 2 * Primitive Types 3 * ------------------------------------------------------------ */ 4 5/* boolean */ 6 7%fragment(SWIG_From_frag(bool),"header") { 8SWIGINTERNINLINE PyObject* 9 SWIG_From_dec(bool)(bool value) 10{ 11 return PyBool_FromLong(value ? 1 : 0); 12} 13} 14 15%fragment(SWIG_AsVal_frag(bool),"header", 16 fragment=SWIG_AsVal_frag(long)) { 17SWIGINTERN int 18SWIG_AsVal_dec(bool)(PyObject *obj, bool *val) 19{ 20 int r = PyObject_IsTrue(obj); 21 if (r == -1) 22 return SWIG_ERROR; 23 if (val) *val = r ? true : false; 24 return SWIG_OK; 25} 26} 27 28/* int */ 29 30%fragment(SWIG_From_frag(int),"header") { 31SWIGINTERNINLINE PyObject* 32 SWIG_From_dec(int)(int value) 33{ 34 return PyInt_FromLong((long) value); 35} 36} 37 38/* unsigned int */ 39 40%fragment(SWIG_From_frag(unsigned int),"header") { 41SWIGINTERNINLINE PyObject* 42 SWIG_From_dec(unsigned int)(unsigned int value) 43{ 44 return PyInt_FromSize_t((size_t) value); 45} 46} 47 48/* long */ 49 50%fragment(SWIG_From_frag(long),"header") { 51 %define_as(SWIG_From_dec(long), PyLong_FromLong) 52} 53 54%fragment(SWIG_AsVal_frag(long),"header", 55 fragment="SWIG_CanCastAsInteger") { 56SWIGINTERN int 57SWIG_AsVal_dec(long)(PyObject *obj, long* val) 58{ 59 if (PyInt_Check(obj)) { 60 if (val) *val = PyInt_AsLong(obj); 61 return SWIG_OK; 62 } else if (PyLong_Check(obj)) { 63 long v = PyLong_AsLong(obj); 64 if (!PyErr_Occurred()) { 65 if (val) *val = v; 66 return SWIG_OK; 67 } else { 68 PyErr_Clear(); 69 } 70 } 71%#ifdef SWIG_PYTHON_CAST_MODE 72 { 73 int dispatch = 0; 74 long v = PyInt_AsLong(obj); 75 if (!PyErr_Occurred()) { 76 if (val) *val = v; 77 return SWIG_AddCast(SWIG_OK); 78 } else { 79 PyErr_Clear(); 80 } 81 if (!dispatch) { 82 double d; 83 int res = SWIG_AddCast(SWIG_AsVal(double)(obj,&d)); 84 if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { 85 if (val) *val = (long)(d); 86 return res; 87 } 88 } 89 } 90%#endif 91 return SWIG_TypeError; 92} 93} 94 95/* unsigned long */ 96 97%fragment(SWIG_From_frag(unsigned long),"header", 98 fragment=SWIG_From_frag(long)) { 99SWIGINTERNINLINE PyObject* 100SWIG_From_dec(unsigned long)(unsigned long value) 101{ 102 return (value > LONG_MAX) ? 103 PyLong_FromUnsignedLong(value) : PyLong_FromLong(%numeric_cast(value,long)); 104} 105} 106 107%fragment(SWIG_AsVal_frag(unsigned long),"header", 108 fragment="SWIG_CanCastAsInteger") { 109SWIGINTERN int 110SWIG_AsVal_dec(unsigned long)(PyObject *obj, unsigned long *val) 111{ 112%#if PY_VERSION_HEX < 0x03000000 113 if (PyInt_Check(obj)) { 114 long v = PyInt_AsLong(obj); 115 if (v >= 0) { 116 if (val) *val = v; 117 return SWIG_OK; 118 } else { 119 return SWIG_OverflowError; 120 } 121 } else 122%#endif 123 if (PyLong_Check(obj)) { 124 unsigned long v = PyLong_AsUnsignedLong(obj); 125 if (!PyErr_Occurred()) { 126 if (val) *val = v; 127 return SWIG_OK; 128 } else { 129 PyErr_Clear(); 130%#if PY_VERSION_HEX >= 0x03000000 131 { 132 long v = PyLong_AsLong(obj); 133 if (!PyErr_Occurred()) { 134 if (v < 0) { 135 return SWIG_OverflowError; 136 } 137 } else { 138 PyErr_Clear(); 139 } 140 } 141%#endif 142 } 143 } 144%#ifdef SWIG_PYTHON_CAST_MODE 145 { 146 int dispatch = 0; 147 unsigned long v = PyLong_AsUnsignedLong(obj); 148 if (!PyErr_Occurred()) { 149 if (val) *val = v; 150 return SWIG_AddCast(SWIG_OK); 151 } else { 152 PyErr_Clear(); 153 } 154 if (!dispatch) { 155 double d; 156 int res = SWIG_AddCast(SWIG_AsVal(double)(obj,&d)); 157 if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) { 158 if (val) *val = (unsigned long)(d); 159 return res; 160 } 161 } 162 } 163%#endif 164 return SWIG_TypeError; 165} 166} 167 168/* long long */ 169 170%fragment(SWIG_From_frag(long long),"header", 171 fragment=SWIG_From_frag(long), 172 fragment="<limits.h>") { 173SWIGINTERNINLINE PyObject* 174SWIG_From_dec(long long)(long long value) 175{ 176 return ((value < LONG_MIN) || (value > LONG_MAX)) ? 177 PyLong_FromLongLong(value) : PyLong_FromLong(%numeric_cast(value,long)); 178} 179} 180 181%fragment(SWIG_AsVal_frag(long long),"header", 182 fragment=SWIG_AsVal_frag(long), 183 fragment="SWIG_CanCastAsInteger", 184 fragment="<limits.h>") { 185SWIGINTERN int 186SWIG_AsVal_dec(long long)(PyObject *obj, long long *val) 187{ 188 int res = SWIG_TypeError; 189 if (PyLong_Check(obj)) { 190 long long v = PyLong_AsLongLong(obj); 191 if (!PyErr_Occurred()) { 192 if (val) *val = v; 193 return SWIG_OK; 194 } else { 195 PyErr_Clear(); 196 } 197 } else { 198 long v; 199 res = SWIG_AsVal(long)(obj,&v); 200 if (SWIG_IsOK(res)) { 201 if (val) *val = v; 202 return res; 203 } 204 } 205%#ifdef SWIG_PYTHON_CAST_MODE 206 { 207 const double mant_max = 1LL << DBL_MANT_DIG; 208 const double mant_min = -mant_max; 209 double d; 210 res = SWIG_AsVal(double)(obj,&d); 211 if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) { 212 if (val) *val = (long long)(d); 213 return SWIG_AddCast(res); 214 } 215 res = SWIG_TypeError; 216 } 217%#endif 218 return res; 219} 220} 221 222/* unsigned long long */ 223 224%fragment(SWIG_From_frag(unsigned long long),"header", 225 fragment=SWIG_From_frag(long long), 226 fragment="<limits.h>") { 227SWIGINTERNINLINE PyObject* 228SWIG_From_dec(unsigned long long)(unsigned long long value) 229{ 230 return (value > LONG_MAX) ? 231 PyLong_FromUnsignedLongLong(value) : PyLong_FromLong(%numeric_cast(value,long)); 232} 233} 234 235%fragment(SWIG_AsVal_frag(unsigned long long),"header", 236 fragment=SWIG_AsVal_frag(unsigned long), 237 fragment="SWIG_CanCastAsInteger", 238 fragment="<limits.h>") { 239SWIGINTERN int 240SWIG_AsVal_dec(unsigned long long)(PyObject *obj, unsigned long long *val) 241{ 242 int res = SWIG_TypeError; 243 if (PyLong_Check(obj)) { 244 unsigned long long v = PyLong_AsUnsignedLongLong(obj); 245 if (!PyErr_Occurred()) { 246 if (val) *val = v; 247 return SWIG_OK; 248 } else { 249 PyErr_Clear(); 250 } 251 } else { 252 unsigned long v; 253 res = SWIG_AsVal(unsigned long)(obj,&v); 254 if (SWIG_IsOK(res)) { 255 if (val) *val = v; 256 return res; 257 } 258 } 259%#ifdef SWIG_PYTHON_CAST_MODE 260 { 261 const double mant_max = 1LL << DBL_MANT_DIG; 262 double d; 263 res = SWIG_AsVal(double)(obj,&d); 264 if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) { 265 if (val) *val = (unsigned long long)(d); 266 return SWIG_AddCast(res); 267 } 268 res = SWIG_TypeError; 269 } 270%#endif 271 return res; 272} 273} 274 275/* double */ 276 277%fragment(SWIG_From_frag(double),"header") { 278 %define_as(SWIG_From_dec(double), PyFloat_FromDouble) 279} 280 281%fragment(SWIG_AsVal_frag(double),"header") { 282SWIGINTERN int 283SWIG_AsVal_dec(double)(PyObject *obj, double *val) 284{ 285 int res = SWIG_TypeError; 286 if (PyFloat_Check(obj)) { 287 if (val) *val = PyFloat_AsDouble(obj); 288 return SWIG_OK; 289 } else if (PyInt_Check(obj)) { 290 if (val) *val = PyInt_AsLong(obj); 291 return SWIG_OK; 292 } else if (PyLong_Check(obj)) { 293 double v = PyLong_AsDouble(obj); 294 if (!PyErr_Occurred()) { 295 if (val) *val = v; 296 return SWIG_OK; 297 } else { 298 PyErr_Clear(); 299 } 300 } 301%#ifdef SWIG_PYTHON_CAST_MODE 302 { 303 int dispatch = 0; 304 double d = PyFloat_AsDouble(obj); 305 if (!PyErr_Occurred()) { 306 if (val) *val = d; 307 return SWIG_AddCast(SWIG_OK); 308 } else { 309 PyErr_Clear(); 310 } 311 if (!dispatch) { 312 long v = PyLong_AsLong(obj); 313 if (!PyErr_Occurred()) { 314 if (val) *val = v; 315 return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); 316 } else { 317 PyErr_Clear(); 318 } 319 } 320 } 321%#endif 322 return res; 323} 324} 325 326 327 328