29#define SWIGLAL_MODULE_RENAME_CONSTANTS
30#define SWIGLAL_MODULE_RENAME_FUNCTIONS
31#define SWIGLAL_MODULE_RENAME_TDSTRUCTS
32#define SWIGLAL_MODULE_RENAME_VARIABLES
35%include <pycomplex.swg>
40#include <numpy/arrayobject.h>
48#if NPY_ABI_VERSION < 0x02000000
53 #define NPY_2_0_API_VERSION 0x00000012
59 #define PyArray_RUNTIME_VERSION NPY_FEATURE_VERSION
61 #define PyArray_DescrProto PyArray_Descr
65#if defined(import_array1)
74#define swiglal_not_empty(v) ((v) != NULL)
79#define swiglal_self() (self)
80#define swiglal_no_self() (NULL)
85#define swiglal_1starg() (obj0)
90SWIGINTERNINLINE PyObject* swiglal_get_reference(PyObject* v) { Py_XINCREF(v);
return v; }
96SWIGINTERN PyObject* swiglal_py_remove_first_output(PyObject *result) {
97 PySequence_DelItem(result, 0);
98 if (PySequence_Size(result) == 1) {
99 PyObject *obj = result;
100 result = PySequence_GetItem(obj, 0);
105#define swiglal_maybe_return_int() \
106 if (PySequence_Check(resultobj) && PySequence_Size(resultobj) > 1) resultobj = swiglal_py_remove_first_output(resultobj)
111#define swiglal_null_ptr(v) ((v) == Py_None)
116SWIGINTERN
int swiglal_output_stdouterr(
void) {
119 fflush(swiglal_tmp_stdout);
120 rewind(swiglal_tmp_stdout);
121 fflush(swiglal_tmp_stderr);
122 rewind(swiglal_tmp_stderr);
127 while (fgets(buf,
sizeof(buf), swiglal_tmp_stdout) != NULL) {
128 PySys_WriteStdout(
"%s", buf);
135 while (fgets(buf,
sizeof(buf), swiglal_tmp_stderr) != NULL) {
136 PySys_WriteStderr(
"%s", buf);
141 fclose(swiglal_tmp_stdout);
142 fclose(swiglal_tmp_stderr);
157%define %swiglal_py_ury_op(NAME, FUNCTYPE, SLOT)
158%pythonmaybecall *::__##NAME##__;
159%feature(
"python:slot", #SLOT, functype=#FUNCTYPE) *::__##NAME##__;
160%feature(
"kwargs", 0) *::__##NAME##__;
162%swiglal_py_ury_op(
float, unaryfunc, nb_float);
163%swiglal_py_ury_op(
hash, hashfunc, tp_hash);
164%swiglal_py_ury_op(
int, unaryfunc, nb_int);
165%swiglal_py_ury_op(
long, unaryfunc, nb_long);
166%swiglal_py_ury_op(nonzero, inquiry, nb_nonzero);
167%swiglal_py_ury_op(repr, reprfunc, tp_repr);
168%swiglal_py_ury_op(str, reprfunc, tp_str);
171%define %swiglal_py_urn_op(NAME, FUNCTYPE, SLOT)
172%newobject *::__##NAME##__;
173%pythonmaybecall *::__##NAME##__;
174%feature(
"python:slot", #SLOT, functype=#FUNCTYPE) *::__##NAME##__;
175%feature(
"kwargs", 0) *::__##NAME##__;
177%swiglal_py_urn_op(abs, unaryfunc, nb_absolute);
178%swiglal_py_urn_op(neg, unaryfunc, nb_negative);
179%swiglal_py_urn_op(pos, unaryfunc, nb_positive);
184%define %swiglal_py_bin_op(NAME, FUNCTYPE, SLOT)
185%newobject *::__##NAME##__;
186%pythonmaybecall *::__##NAME##__;
187%feature(
"python:slot", #SLOT, functype=#FUNCTYPE) *::__##NAME##__;
188%feature(
"kwargs", 0) *::__##NAME##__;
189%ignore *::__r##NAME##__;
191%swiglal_py_bin_op(add, binaryfunc, nb_add);
192%swiglal_py_bin_op(and, binaryfunc, nb_and);
193%swiglal_py_bin_op(div, binaryfunc, nb_divide);
194%swiglal_py_bin_op(lshift, binaryfunc, nb_lshift);
195%swiglal_py_bin_op(mod, binaryfunc, nb_remainder);
196%swiglal_py_bin_op(mul, binaryfunc, nb_multiply);
197%swiglal_py_bin_op(or, binaryfunc, nb_or);
198%swiglal_py_bin_op(pow, ternaryfunc, nb_power);
199%swiglal_py_bin_op(rshift, binaryfunc, nb_rshift);
200%swiglal_py_bin_op(sub, binaryfunc, nb_subtract);
201%swiglal_py_bin_op(xor, binaryfunc, nb_xor);
204%typemap(in)
void* SWIGLAL_OP_POW_3RDARG {
205 if ($input != Py_None) {
206 %argument_fail(SWIG_TypeError,
"$type", $symname, $argnum);
213%typemap(out, noblock=1) long __hash__ {
214 %set_output(PyLong_FromLong($1));
218%typemap(in, numinputs=0, noblock=1) int SWIGLAL_CMP_OP_RETN_HACK "";
219%define %swiglal_py_cmp_op(NAME, COMPTYPE)
220%pythonmaybecall *::__
##NAME##__;
221%feature(
"python:compare", #COMPTYPE) *::__##NAME##__;
222%feature(
"kwargs", 0) *::__##NAME##__;
223%feature(
"new", 1) *::__##NAME##__;
224%typemap(out, noblock=1, fragment=SWIG_From_frag(
bool))
bool __##NAME##__ {
225 return SWIG_From_bool($1);
227%typemap(freearg, noblock=1) int SWIGLAL_CMP_OP_RETN_HACK {
229 Py_INCREF(Py_NotImplemented);
230 return Py_NotImplemented;
233%swiglal_py_cmp_op(eq, Py_EQ);
234%swiglal_py_cmp_op(ge, Py_GE);
235%swiglal_py_cmp_op(gt, Py_GT);
236%swiglal_py_cmp_op(le, Py_LE);
237%swiglal_py_cmp_op(
lt, Py_LT);
238%swiglal_py_cmp_op(ne, Py_NE);
253%define %swiglal_struct_extend_specific(TAGNAME, OPAQUE, DTORFUNC)
259 struct TAGNAME *__copy__() {
260 return %swiglal_new_copy(*$self,
struct TAGNAME);
265 struct TAGNAME *__copy__() {
275#if !OPAQUE && #DTORFUNC == ""
277 %typemap(in, noblock=1) const
void *memo "";
278 struct TAGNAME *__deepcopy__(const
void *memo) {
279 return %swiglal_new_copy(*$self,
struct TAGNAME);
281 %clear
const void *memo;
285 %typemap(in, noblock=1) const
void *memo "";
286 struct TAGNAME *__deepcopy__(const
void *memo) {
290 %clear
const void *memo;
301%swig_cplxflt_convn(gsl_complex_float, gsl_complex_float_rect, GSL_REAL, GSL_IMAG);
302%swig_cplxdbl_convn(gsl_complex, gsl_complex_rect, GSL_REAL, GSL_IMAG);
303%typemaps_primitive(%checkcode(CPLXFLT), gsl_complex_float);
304%typemaps_primitive(%checkcode(CPLXDBL), gsl_complex);
309%typemaps_primitive(%checkcode(CPLXFLT),
COMPLEX8);
310%typemaps_primitive(%checkcode(CPLXDBL),
COMPLEX16);
318%fragment(SWIG_AsVal_frag(
long));
319%fragment(SWIG_AsVal_frag(
unsigned long));
320%fragment(SWIG_AsVal_frag(
float));
321%fragment(SWIG_AsVal_frag(
double));
322%fragment(SWIG_AsVal_frag(
COMPLEX8));
325SWIGINTERN
int swiglal_SWIG_AsVal_long(PyObject *obj,
long* val) {
326 if (PyArray_IsScalar(obj, Integer)) {
329 PyArray_Descr *longDescr = PyArray_DescrFromType(NPY_LONG);
330 PyArray_CastScalarToCtype(obj, (
void*)val, longDescr);
331 Py_DECREF(longDescr);
336 return SWIG_AsVal_long(obj, val);
338SWIGINTERN
int swiglal_SWIG_AsVal_unsigned_SS_long(PyObject *obj,
unsigned long *val) {
339 if (PyArray_IsScalar(obj, Integer)) {
342 PyArray_Descr *ulongDescr = PyArray_DescrFromType(NPY_ULONG);
343 PyArray_CastScalarToCtype(obj, (
void*)val, ulongDescr);
344 Py_DECREF(ulongDescr);
349 return SWIG_AsVal_unsigned_SS_long(obj, val);
351SWIGINTERN
int swiglal_SWIG_AsVal_float(PyObject *obj,
float* val) {
352 if (PyArray_IsScalar(obj, Integer) || PyArray_IsScalar(obj, Floating)) {
355 PyArray_Descr *floatDescr = PyArray_DescrFromType(NPY_FLOAT);
356 PyArray_CastScalarToCtype(obj, (
void*)val, floatDescr);
357 Py_DECREF(floatDescr);
362 return SWIG_AsVal_float(obj, val);
364SWIGINTERN
int swiglal_SWIG_AsVal_double(PyObject *obj,
double* val) {
365 if (PyArray_IsScalar(obj, Integer) || PyArray_IsScalar(obj, Floating)) {
368 PyArray_Descr *doubleDescr = PyArray_DescrFromType(NPY_DOUBLE);
369 PyArray_CastScalarToCtype(obj, (
void*)val, doubleDescr);
370 Py_DECREF(doubleDescr);
375 return SWIG_AsVal_double(obj, val);
377SWIGINTERN
int swiglal_SWIG_AsVal_COMPLEX8(PyObject *obj,
COMPLEX8* val) {
378 if (PyArray_IsScalar(obj, Integer) || PyArray_IsScalar(obj, Floating) || PyArray_IsScalar(obj, ComplexFloating)) {
381 PyArray_Descr *floatComplexDescr = PyArray_DescrFromType(NPY_COMPLEX64);
382 PyArray_CastScalarToCtype(obj, (
void*)val, floatComplexDescr);
383 Py_DECREF(floatComplexDescr);
388 return SWIG_AsVal_COMPLEX8(obj, val);
390SWIGINTERN
int swiglal_SWIG_AsVal_COMPLEX16(PyObject *obj,
COMPLEX16* val) {
391 if (PyArray_IsScalar(obj, Integer) || PyArray_IsScalar(obj, Floating) || PyArray_IsScalar(obj, ComplexFloating)) {
394 PyArray_Descr *doubleComplexDescr = PyArray_DescrFromType(NPY_COMPLEX128);
395 PyArray_CastScalarToCtype(obj, (
void*)val, doubleComplexDescr);
396 Py_DECREF(doubleComplexDescr);
401 return SWIG_AsVal_COMPLEX16(obj, val);
403#define SWIG_AsVal_long(obj, val) swiglal_SWIG_AsVal_long(obj, val)
404#define SWIG_AsVal_unsigned_SS_long(obj, val) swiglal_SWIG_AsVal_unsigned_SS_long(obj, val)
405#define SWIG_AsVal_float(obj, val) swiglal_SWIG_AsVal_float(obj, val)
406#define SWIG_AsVal_double(obj, val) swiglal_SWIG_AsVal_double(obj, val)
407#define SWIG_AsVal_COMPLEX8(obj, val) swiglal_SWIG_AsVal_COMPLEX8(obj, val)
408#define SWIG_AsVal_COMPLEX16(obj, val) swiglal_SWIG_AsVal_COMPLEX16(obj, val)
412%typemap(in)
struct tm* (
struct tm temptm) {
415 memset(&temptm, 0,
sizeof(temptm));
417 if ($input != NULL && $input != Py_None) {
420 if (!PySequence_Check($input)) {
421 %argument_fail(SWIG_ValueError,
"$type (not a sequence)", $symname, $argnum);
423 if (PySequence_Size($input) != 9) {
424 %argument_fail(SWIG_ValueError,
"$type (must have 9 elements)", $symname, $argnum);
426 PyObject *seq = PySequence_Fast($input,
"$type (not a sequence)");
427 temptm.tm_year = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 0)),
int);
428 temptm.tm_mon = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 1)),
int);
429 temptm.tm_mday = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 2)),
int);
430 temptm.tm_hour = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 3)),
int);
431 temptm.tm_min = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 4)),
int);
432 temptm.tm_sec = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 5)),
int);
433 temptm.tm_wday = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 6)),
int);
434 temptm.tm_yday = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 7)),
int);
435 temptm.tm_isdst = %static_cast(PyInt_AsLong(PySequence_Fast_GET_ITEM($input, 8)),
int);
437 if (PyErr_Occurred()) {
446 temptm.tm_year -= 1900;
448 temptm.tm_wday = (temptm.tm_wday + 8) % 7;
455%typemap(freearg)
struct tm*
"";
456%typemap(out)
struct tm* {
465 $1->tm_wday = ($1->tm_wday + 6) % 7;
469 $result = Py_BuildValue(
"(iiiiiiiii)",
470 $1->tm_year, $1->tm_mon, $1->tm_mday,
471 $1->tm_hour, $1->tm_min, $1->tm_sec,
472 $1->tm_wday, $1->tm_yday, $1->tm_isdst);
480%fragment(
"SWIG_AsCharPtrAndSize");
481%fragment(
"SWIG_FromCharPtr");
485PyObject* swiglal_runtime_data_module = NULL;
487 const char *
const module_name =
"swiglal_runtime_data";
488#if PY_VERSION_HEX >= 0x03000000
489 swiglal_runtime_data_module = PyImport_AddModule(module_name);
491 swiglal_runtime_data_module = Py_InitModule(module_name, NULL);
493 assert(swiglal_runtime_data_module != NULL);
498 const char *
const swig_runtime_version_name =
"swig_runtime_version";
499 const char*
const last_swiglal_wrapper_name =
"last_swiglal_wrapper";
500 PyObject *swig_runtime_version = NULL;
501 PyObject *last_swiglal_wrapper = NULL;
502 if (PyObject_HasAttrString(swiglal_runtime_data_module, swig_runtime_version_name)) {
503 swig_runtime_version = PyObject_GetAttrString(swiglal_runtime_data_module, swig_runtime_version_name);
504 char *swig_runtime_version_str = NULL;
506 int res = SWIG_AsCharPtrAndSize(swig_runtime_version, &swig_runtime_version_str, NULL, &alloc);
507 assert(SWIG_IsOK(res));
508 last_swiglal_wrapper = PyObject_GetAttrString(swiglal_runtime_data_module, last_swiglal_wrapper_name);
509 char *last_swiglal_wrapper_str = NULL;
511 int res2 = SWIG_AsCharPtrAndSize(last_swiglal_wrapper, &last_swiglal_wrapper_str, NULL, &alloc2);
512 assert(SWIG_IsOK(res2));
513 if (strcmp(swig_runtime_version_str, SWIG_RUNTIME_VERSION) != 0) {
516 "Mismatch in SWIG runtime versions: %s is version %s, but %s has already been loaded with version %s",
517 SWIGLAL_PACKAGE, SWIG_RUNTIME_VERSION, last_swiglal_wrapper_str, swig_runtime_version_str
520 free(swig_runtime_version_str);
523 free(last_swiglal_wrapper_str);
525#if SWIG_VERSION >= 0x040400
527#elif PY_VERSION_HEX >= 0x03000000
534 free(swig_runtime_version_str);
537 free(last_swiglal_wrapper_str);
539 Py_DECREF(swig_runtime_version);
541 swig_runtime_version = SWIG_FromCharPtr(SWIG_RUNTIME_VERSION);
542 PyObject_SetAttrString(swiglal_runtime_data_module, swig_runtime_version_name, swig_runtime_version);
544 last_swiglal_wrapper = SWIG_FromCharPtr(SWIGLAL_PACKAGE);
545 PyObject_SetAttrString(swiglal_runtime_data_module, last_swiglal_wrapper_name, last_swiglal_wrapper);
560static PyObject *parent_map = NULL;
564SWIGINTERN
void swiglal_store_parent(
void* ptr, PyObject* parent) {
565 PyObject *pyerr_type = NULL, *pyerr_value = NULL, *pyerr_traceback = NULL;
566 PyErr_Fetch(&pyerr_type, &pyerr_value, &pyerr_traceback);
569 assert(parent != NULL);
570 PyObject* key = PyLong_FromVoidPtr(ptr);
572 PyObject* parent_tuple = PyDict_GetItem(parent_map, key);
573 if (parent_tuple == NULL) {
574 const long ref_count = 1;
575 parent_tuple = Py_BuildValue(
"Ol", parent, ref_count);
576 assert(parent_tuple != NULL);
577 ecode = PyDict_SetItem(parent_map, key, parent_tuple);
579 Py_CLEAR(parent_tuple);
582 Py_INCREF(parent_tuple);
583 PyObject* stored_parent = NULL;
585 ecode = PyArg_ParseTuple(parent_tuple,
"Ol", &stored_parent, &ref_count);
588 Py_INCREF(stored_parent);
589 Py_CLEAR(parent_tuple);
590 parent_tuple = Py_BuildValue(
"Nl", stored_parent, ref_count);
591 assert(parent_tuple != NULL);
592 ecode = PyDict_SetItem(parent_map, key, parent_tuple);
594 Py_CLEAR(parent_tuple);
597 assert(PyErr_Occurred() == NULL);
598 PyErr_Restore(pyerr_type, pyerr_value, pyerr_traceback);
605SWIGINTERN
bool swiglal_release_parent(
void *ptr) {
606 PyObject *pyerr_type = NULL, *pyerr_value = NULL, *pyerr_traceback = NULL;
607 PyErr_Fetch(&pyerr_type, &pyerr_value, &pyerr_traceback);
611 PyObject* key = PyLong_FromVoidPtr(ptr);
613 PyObject* parent_tuple = PyDict_GetItem(parent_map, key);
614 if (parent_tuple != NULL) {
615 Py_INCREF(parent_tuple);
617 PyObject* stored_parent = NULL;
619 ecode = PyArg_ParseTuple(parent_tuple,
"Ol", &stored_parent, &ref_count);
621 Py_INCREF(stored_parent);
622 Py_CLEAR(parent_tuple);
623 if (--ref_count == 0) {
624 ecode = PyDict_DelItem(parent_map, key);
628 parent_tuple = Py_BuildValue(
"Ol", stored_parent, ref_count);
629 ecode = PyDict_SetItem(parent_map, key, parent_tuple);
631 Py_CLEAR(parent_tuple);
633 Py_CLEAR(stored_parent);
636 assert(PyErr_Occurred() == NULL);
637 PyErr_Restore(pyerr_type, pyerr_value, pyerr_traceback);
649 const char *
const parent_map_name =
"parent_map";
650 if (PyObject_HasAttrString(swiglal_runtime_data_module, parent_map_name)) {
651 parent_map = PyObject_GetAttrString(swiglal_runtime_data_module, parent_map_name);
654 parent_map = PyDict_New();
655 PyObject_SetAttrString(swiglal_runtime_data_module, parent_map_name, parent_map);
657 assert(parent_map != NULL);
670%fragment(
"swiglal_py_array_helpers",
"header") {
673 void* swiglal_py_get_element_ptr(
void* ptr,
676 const size_t strides[],
680 for (
size_t j = 0; j < ndims; ++j) {
681 elemidx += ((size_t)idx[j]) * strides[j];
683 return %reinterpret_cast(%reinterpret_cast(ptr,
char*) + elemidx*esize,
void*);
687 void swiglal_py_increment_idx(
const size_t ndims,
691 for (
int j = ((
int)ndims) - 1; j >= 0; --j) {
692 if (++idx[j] < ((npy_intp)dims[j])) {
702%fragment(
"swiglal_py_array_objview",
"header") {
707 swig_type_info* tinfo;
708 PyArray_Descr* descr_noptr;
709 PyArray_Descr* descr_isptr;
710 } swiglal_py_array_type_pair;
716 static swiglal_py_array_type_pair swiglal_py_array_types[
sizeof(swig_types) /
sizeof(swig_types[0])];
720 SWIGINTERN PyArray_Descr** swiglal_py_array_descr_from_tinfo(
const bool isptr, swig_type_info* tinfo) {
722 while (swiglal_py_array_types[i].tinfo != NULL && swiglal_py_array_types[i].tinfo != tinfo)
724 if (swiglal_py_array_types[i].tinfo == NULL)
725 swiglal_py_array_types[i].tinfo = tinfo;
726 return isptr ? &swiglal_py_array_types[i].descr_isptr : &swiglal_py_array_types[i].descr_noptr;
731 SWIGINTERN
void swiglal_py_array_tinfo_from_descr(
bool *isptr, swig_type_info** tinfo, PyArray_Descr* descr) {
733 while ( ( swiglal_py_array_types[i].descr_noptr != NULL || swiglal_py_array_types[i].descr_isptr != NULL ) &&
734 ( swiglal_py_array_types[i].descr_noptr != descr && swiglal_py_array_types[i].descr_isptr != descr ) )
736 *isptr = (swiglal_py_array_types[i].descr_isptr == descr);
737 *tinfo = swiglal_py_array_types[i].tinfo;
741 static int swiglal_py_array_objview_copyswap_cancastto[2] = {NPY_OBJECT, NPY_NOTYPE};
744 static void swiglal_py_array_objview_copyswap(
void*
dst,
void*
src,
int swap,
void* arr) {
748 PyArrayObject* nparr = (PyArrayObject*)arr;
749 assert(PyArray_DESCR(nparr) != NULL);
753 memcpy(
dst,
src, PyArray_ITEMSIZE(nparr));
758 const size_t n = PyArray_ITEMSIZE(nparr) / 2;
761 b =
a + (PyArray_ITEMSIZE(nparr)-1);
762 for (
size_t i = 0; i < n; i++) {
774#define %swiglal_py_array_objview_frag(ACFTYPE) "swiglal_py_array_objview_" %str(ACFTYPE)
778#define %swiglal_py_array_objview_init_frag(ACFTYPE) "swiglal_py_array_objview_init_" %str(ACFTYPE)
782%define %swiglal_py_array_objview(ACFTYPE, INFRAG, OUTFRAG, INCALL, OUTCALL)
785%fragment(%swiglal_py_array_objview_init_frag(ACFTYPE),
"init") {
786 swiglal_py_array_objview_##ACFTYPE##_arrfuncs.cast[NPY_OBJECT] =
787 (PyArray_VectorUnaryFunc*)swiglal_py_array_objview_##ACFTYPE##_cast_to_object;
791%fragment(%swiglal_py_array_objview_frag(ACFTYPE),
"header",
792 fragment=
"swiglal_py_array_objview",
793 fragment=%swiglal_py_array_objview_init_frag(ACFTYPE),
794 fragment=INFRAG, fragment=OUTFRAG)
798 static PyObject* swiglal_py_array_objview_##ACFTYPE##_getitem(
void* elemptr,
void* arr) {
801 assert(elemptr != NULL);
803 PyArrayObject* nparr = (PyArrayObject*)arr;
804 assert(PyArray_DESCR(nparr) != NULL);
808 swig_type_info* tinfo = NULL;
809 swiglal_py_array_tinfo_from_descr(&isptr, &tinfo, PyArray_DESCR(nparr));
810 assert(tinfo != NULL);
813 const bool copyobj =
false;
814 const size_t esize = PyArray_ITEMSIZE(nparr);
815 const int tflags = 0;
816 PyObject* parent = PyArray_BASE(nparr);
822 static int swiglal_py_array_objview_##ACFTYPE##_setitem(PyObject* objelem,
void* elemptr,
void* arr) {
825 assert(elemptr != NULL);
827 PyArrayObject* nparr = (PyArrayObject*)arr;
828 assert(PyArray_DESCR(nparr) != NULL);
832 swig_type_info* tinfo = NULL;
833 swiglal_py_array_tinfo_from_descr(&isptr, &tinfo, PyArray_DESCR(nparr));
834 assert(tinfo != NULL);
844 const int tflags = isptr ? SWIG_POINTER_DISOWN : 0;
847 const size_t esize = PyArray_ITEMSIZE(nparr);
848 PyObject* parent = PyArray_BASE(nparr);
850 int *pelemalloc = &elemalloc;
852 if (!SWIG_IsOK(res)) {
853 SWIG_Error(res,
"failure in swiglal_py_array_objview_" #ACFTYPE
"_setitem()");
861 static void swiglal_py_array_objview_##ACFTYPE##_cast_to_object(
void *from,
void *to, npy_intp n,
void *fromarr,
void *toarr) {
864 assert(fromarr != NULL);
865 PyArrayObject* npfromarr = (PyArrayObject*)fromarr;
866 assert(PyArray_DESCR(npfromarr) != NULL);
867 assert(toarr != NULL);
868 PyArrayObject* nptoarr = (PyArrayObject*)toarr;
869 assert(PyArray_DESCR(nptoarr) != NULL);
872 assert(PyArray_ITEMSIZE(nptoarr) ==
sizeof(PyObject*));
876 char* fromelem = (
void*)from;
877 PyObject** toelem = (PyObject**)to;
879 *toelem = swiglal_py_array_objview_##ACFTYPE##_getitem(fromelem, fromarr);
880 fromelem += PyArray_ITEMSIZE(npfromarr);
887 static PyArray_ArrFuncs swiglal_py_array_objview_##ACFTYPE##_arrfuncs = {
888 {(PyArray_VectorUnaryFunc*)NULL},
889 (PyArray_GetItemFunc*)&swiglal_py_array_objview_##ACFTYPE##_getitem,
890 (PyArray_SetItemFunc*)&swiglal_py_array_objview_##ACFTYPE##_setitem,
891 (PyArray_CopySwapNFunc*)NULL,
892 (PyArray_CopySwapFunc*)&swiglal_py_array_objview_copyswap,
893 (PyArray_CompareFunc*)NULL,
894 (PyArray_ArgFunc*)NULL,
895 (PyArray_DotFunc*)NULL,
896 (PyArray_ScanFunc*)NULL,
897 (PyArray_FromStrFunc*)NULL,
898 (PyArray_NonzeroFunc*)NULL,
899 (PyArray_FillFunc*)NULL,
900 (PyArray_FillWithScalarFunc*)NULL,
901 {(PyArray_SortFunc*)NULL},
902 {(PyArray_ArgSortFunc*)NULL},
904 (PyArray_ScalarKindFunc*)NULL,
906 (
int*)swiglal_py_array_objview_copyswap_cancastto,
917 SWIGINTERN PyArray_Descr* swiglal_py_array_objview_##ACFTYPE##_descr(
const bool isptr, swig_type_info* tinfo,
const int esize) {
920 PyArray_Descr* *pdescr = swiglal_py_array_descr_from_tinfo(isptr, tinfo);
921 if (*pdescr == NULL) {
927 PyArray_DescrProto *proto = PyObject_Malloc(
sizeof(PyArray_DescrProto));
931 PyArray_DescrProto
src = {
932 PyObject_HEAD_INIT(&PyArrayDescr_Type)
933#if SWIG_VERSION >= 0x040400
934 .typeobj = SwigPyObject_Type(),
936 .typeobj = SwigPyObject_type(),
941 .flags = NPY_LIST_PICKLE | NPY_NEEDS_INIT | NPY_NEEDS_PYAPI | NPY_USE_GETITEM | NPY_USE_SETITEM,
944 .f = &swiglal_py_array_objview_##ACFTYPE##_arrfuncs,
949 int typenum = PyArray_RegisterDataType(proto);
953 if (typenum < 0 || PyArray_RUNTIME_VERSION >= NPY_2_0_API_VERSION) {
954 PyObject_Free(proto);
958 *pdescr = PyArray_DescrFromType(typenum);
980%define %swiglal_py_array_frags(ACFTYPE, INFRAG, OUTFRAG, INCALL, OUTCALL, VIEWFRAG, NPYTYPE, NPYDESCR)
983%fragment(%swiglal_array_copyin_frag(ACFTYPE),
"header",
984 fragment=
"swiglal_py_array_helpers", fragment=INFRAG)
986 SWIGINTERN
int %swiglal_array_copyin_func(ACFTYPE)(PyObject* parent,
993 const size_t strides[],
995 swig_type_info *tinfo,
998 PyArrayObject* nparr = NULL;
1000 npy_intp idx[ndims];
1004 return SWIG_MemoryError;
1008 if (PyArray_Converter(obj, (PyObject**)&nparr) != NPY_SUCCEED) {
1009 return SWIG_ValueError;
1013 if (((
size_t)PyArray_NDIM(nparr)) != ndims) {
1014 res = SWIG_ValueError;
1018 for (
size_t i = 0; i < ndims; ++i) {
1019 if (((
size_t)PyArray_DIM(nparr, i)) != dims[i]) {
1020 res = SWIG_ValueError;
1027 memset(idx, 0, ndims*
sizeof(npy_intp));
1028 for (
size_t i = 0; i < nelem; ++i) {
1031 void* elemptr = swiglal_py_get_element_ptr(ptr, esize, ndims, strides, idx);
1034 PyObject* objelem = PyArray_GETITEM(nparr, PyArray_GetPtr((PyArrayObject*)nparr, idx));
1036 if (!SWIG_IsOK(res)) {
1042 swiglal_py_increment_idx(ndims, dims, idx);
1056%fragment(%swiglal_array_copyout_frag(ACFTYPE),
"header",
1057 fragment=
"swiglal_py_array_helpers", fragment=OUTFRAG)
1059 SWIGINTERN PyObject* %swiglal_array_copyout_func(ACFTYPE)(PyObject* parent,
1063 const size_t dims[],
1064 const size_t strides[],
1066 swig_type_info *tinfo,
1069 PyArrayObject* nparr = NULL;
1070 npy_intp objdims[ndims];
1071 npy_intp idx[ndims];
1080 for (
size_t i = 0; i < ndims; ++i) {
1081 objdims[i] = dims[i];
1086 nparr = (PyArrayObject*)PyArray_EMPTY(ndims, objdims, NPYTYPE, 0);
1087 if (nparr == NULL) {
1092 memset(idx, 0, ndims*
sizeof(npy_intp));
1093 for (
size_t i = 0; i < nelem; ++i) {
1096 void* elemptr = swiglal_py_get_element_ptr(ptr, esize, ndims, strides, idx);
1099 const bool copyobj =
true;
1100 PyObject* objelem = OUTCALL;
1101 PyArray_SETITEM(nparr, PyArray_GetPtr((PyArrayObject*)nparr, idx), objelem);
1105 swiglal_py_increment_idx(ndims, dims, idx);
1109 return (PyObject*)nparr;
1120%fragment(%swiglal_array_viewin_frag(ACFTYPE),
"header",
1121 fragment=
"swiglal_py_array_helpers", fragment=INFRAG)
1123 SWIGINTERN
int %swiglal_array_viewin_func(ACFTYPE)(PyObject* parent,
1130 swig_type_info *tinfo,
1133 PyArrayObject* nparr = NULL;
1138 return SWIG_MemoryError;
1142 if (PyArray_Converter(obj, (PyObject**)&nparr) != NPY_SUCCEED) {
1143 return SWIG_ValueError;
1147 if (((
size_t)PyArray_NDIM(nparr)) != ndims) {
1148 res = SWIG_ValueError;
1153 for (
size_t i = 0; i < ndims; ++i) {
1154 dims[i] = PyArray_DIM(nparr, i);
1158 if (!PyArray_Check(obj)) {
1159 res = SWIG_TypeError;
1165 res = SWIG_TypeError;
1170 if (NPYTYPE == NPY_OBJECT) {
1171 res = SWIG_TypeError;
1176 if (!PyArray_ISCARRAY(nparr)) {
1177 res = SWIG_TypeError;
1182 if (PyArray_TYPE(nparr) != NPYTYPE) {
1183 res = SWIG_TypeError;
1188 if (((
size_t)PyArray_ITEMSIZE(nparr)) != esize) {
1189 res = SWIG_TypeError;
1194 *ptr = PyArray_DATA(nparr);
1196 res = SWIG_ValueError;
1210%fragment(%swiglal_array_viewout_frag(ACFTYPE),
"header",
1211 fragment=
"swiglal_py_array_helpers", fragment=VIEWFRAG, fragment=OUTFRAG)
1213 SWIGINTERN PyObject* %swiglal_array_viewout_func(ACFTYPE)(PyObject* parent,
1217 const size_t dims[],
1218 const size_t strides[],
1220 swig_type_info *tinfo,
1223 PyArrayObject* nparr = NULL;
1224 npy_intp objdims[ndims];
1225 npy_intp objstrides[ndims];
1233 for (
size_t i = 0; i < ndims; ++i) {
1234 objdims[i] = dims[i];
1235 objstrides[i] = strides[i] * esize;
1239 PyArray_Descr* descr = NPYDESCR;
1240 if (descr == NULL) {
1243 nparr = (PyArrayObject*)PyArray_NewFromDescr(&PyArray_Type, descr, ndims, objdims, objstrides, ptr, NPY_ARRAY_WRITEABLE, NULL);
1244 if (nparr == NULL) {
1251 PyArray_SetBaseObject(nparr, parent);
1254 return (PyObject*)nparr;
1268%define %swiglal_py_array_objview_frags(ACFTYPE, INFRAG, OUTFRAG, INCALL, OUTCALL)
1269%swiglal_py_array_objview(ACFTYPE, INFRAG, OUTFRAG, INCALL, OUTCALL);
1270%swiglal_py_array_frags(ACFTYPE, INFRAG, OUTFRAG, INCALL, OUTCALL,
1271 %swiglal_py_array_objview_frag(ACFTYPE),
1272 NPY_OBJECT, %arg(swiglal_py_array_objview_##ACFTYPE##_descr(isptr, tinfo, esize)));
1276%swiglal_py_array_objview_frags(SWIGTYPE,
"swiglal_as_SWIGTYPE",
"swiglal_from_SWIGTYPE",
1277 %arg(swiglal_as_SWIGTYPE(parent, objelem, elemptr, esize, isptr, tinfo, tflags)),
1278 %arg(swiglal_from_SWIGTYPE(parent, copyobj, elemptr, esize, isptr, tinfo, tflags)));
1281%swiglal_py_array_objview_frags(LALchar,
"SWIG_AsLALcharPtrAndSize",
"SWIG_FromLALcharPtr",
1282 %arg(SWIG_AsLALcharPtrAndSize(objelem, %reinterpret_cast(elemptr,
char**), 0, pelemalloc)),
1283 %arg(SWIG_FromLALcharPtr(*%reinterpret_cast(elemptr,
char**))));
1287%define %swiglal_py_array_asvalfrom_frags(
TYPE, NPYTYPE)
1288%swiglal_py_array_frags(
TYPE, SWIG_AsVal_frag(
TYPE), SWIG_From_frag(
TYPE),
1289 %arg(SWIG_AsVal(
TYPE)(objelem, %reinterpret_cast(elemptr,
TYPE*))),
1290 %arg(SWIG_From(
TYPE)(*%reinterpret_cast(elemptr,
TYPE*))),
1291 "swiglal_empty_frag", NPYTYPE, PyArray_DescrFromType(NPYTYPE));
1295%swiglal_py_array_asvalfrom_frags(int8_t, NPY_INT8);
1296%swiglal_py_array_asvalfrom_frags(uint8_t, NPY_UINT8);
1297%swiglal_py_array_asvalfrom_frags(int16_t, NPY_INT16);
1298%swiglal_py_array_asvalfrom_frags(uint16_t, NPY_UINT16);
1299%swiglal_py_array_asvalfrom_frags(int32_t, NPY_INT32);
1300%swiglal_py_array_asvalfrom_frags(uint32_t, NPY_UINT32);
1301%swiglal_py_array_asvalfrom_frags(int64_t, NPY_INT64);
1302%swiglal_py_array_asvalfrom_frags(uint64_t, NPY_UINT64);
1305%swiglal_py_array_asvalfrom_frags(
float, NPY_FLOAT);
1306%swiglal_py_array_asvalfrom_frags(
double, NPY_DOUBLE);
1309%swiglal_py_array_asvalfrom_frags(gsl_complex_float, NPY_CFLOAT);
1310%swiglal_py_array_asvalfrom_frags(gsl_complex, NPY_CDOUBLE);
1311%swiglal_py_array_asvalfrom_frags(
COMPLEX8, NPY_CFLOAT);
1312%swiglal_py_array_asvalfrom_frags(
COMPLEX16, NPY_CDOUBLE);
static size_t hash(const char *s)
static _LAL_INLINE_ int lt(void *params, const void *a, const void *b, int(*compar)(void *, const void *, const void *))
#define crect(re, im)
Construct a COMPLEX16 from real and imaginary parts.
double complex COMPLEX16
Double-precision floating-point complex number (16 bytes total)
#define crectf(re, im)
Construct a COMPLEX8 from real and imaginary parts.
float complex COMPLEX8
Single-precision floating-point complex number (8 bytes total)
int XLALSetErrno(int errnum)
Sets the XLAL error number to errnum, returns the new value.
@ XLAL_ENOSYS
Function not implemented.