Bug Summary

File:numpy/linalg/lapack_litemodule.c
Warning:line 396, column 9
PyObject ownership leak with reference count of 1

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-unknown-linux-gnu -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name lapack_litemodule.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -analyzer-output=html -analyzer-checker=python -analyzer-disable-checker=deadcode -analyzer-config prune-paths=true,suppress-c++-stdlib=true,suppress-null-return-paths=false,crosscheck-with-z3=true,model-path=/opt/pyrefcon/lib/pyrefcon/models/models -analyzer-config experimental-enable-naive-ctu-analysis=true,ctu-dir=/tmp/pyrefcon/numpy/csa-scan,ctu-index-name=/tmp/pyrefcon/numpy/csa-scan/externalDefMap.txt,ctu-invocation-list=/tmp/pyrefcon/numpy/csa-scan/invocations.yaml,display-ctu-progress=false -setup-static-analyzer -analyzer-config-compatibility-mode=true -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=none -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +sse -target-feature +sse2 -target-feature +sse3 -tune-cpu generic -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -fcoverage-compilation-dir=/tmp/pyrefcon/numpy -resource-dir /opt/pyrefcon/lib/clang/13.0.0 -isystem /opt/pyrefcon/lib/pyrefcon/models/python3.8 -D NDEBUG -D _FORTIFY_SOURCE=2 -D NO_ATLAS_INFO=1 -I numpy/linalg/ -I numpy/core/include -I build/src.linux-x86_64-3.8/numpy/core/include/numpy -I build/src.linux-x86_64-3.8/numpy/distutils/include -I numpy/core/src/common -I numpy/core/src -I numpy/core -I numpy/core/src/npymath -I numpy/core/src/multiarray -I numpy/core/src/umath -I numpy/core/src/npysort -I numpy/core/src/_simd -I build/src.linux-x86_64-3.8/numpy/core/src/common -I build/src.linux-x86_64-3.8/numpy/core/src/npymath -internal-isystem /opt/pyrefcon/lib/clang/13.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -Wno-unused-result -Wsign-compare -Wall -Wformat -Werror=format-security -Wformat -Werror=format-security -Wdate-time -fdebug-compilation-dir=/tmp/pyrefcon/numpy -ferror-limit 19 -fwrapv -pthread -stack-protector 2 -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/pyrefcon/numpy/csa-scan/reports -x c numpy/linalg/lapack_litemodule.c

numpy/linalg/lapack_litemodule.c

1/*This module contributed by Doug Heisterkamp
2Modified by Jim Hugunin
3More modifications by Jeff Whitaker
4*/
5#define NPY_NO_DEPRECATED_API0x0000000E NPY_API_VERSION0x0000000E
6
7#include "Python.h"
8#include "numpy/arrayobject.h"
9#include "npy_cblas.h"
10
11
12#define FNAME(name)name_ BLAS_FUNC(name)name_
13
14typedef CBLAS_INTint fortran_int;
15
16#ifdef HAVE_BLAS_ILP64
17
18#if NPY_BITSOF_SHORT(2 * 8) == 64
19#define FINT_PYFMT"i" "h"
20#elif NPY_BITSOF_INT(4 * 8) == 64
21#define FINT_PYFMT"i" "i"
22#elif NPY_BITSOF_LONG(8 * 8) == 64
23#define FINT_PYFMT"i" "l"
24#elif NPY_BITSOF_LONGLONG(8 * 8) == 64
25#define FINT_PYFMT"i" "L"
26#else
27#error No compatible 64-bit integer size. \
28 Please contact NumPy maintainers and give detailed information about your \
29 compiler and platform, or set NPY_USE_BLAS64_=0
30#endif
31
32#else
33#define FINT_PYFMT"i" "i"
34#endif
35
36typedef struct { float r, i; } f2c_complex;
37typedef struct { double r, i; } f2c_doublecomplex;
38/* typedef long int (*L_fp)(); */
39
40extern fortran_int FNAME(dgelsd)dgelsd_(fortran_int *m, fortran_int *n, fortran_int *nrhs,
41 double a[], fortran_int *lda, double b[], fortran_int *ldb,
42 double s[], double *rcond, fortran_int *rank,
43 double work[], fortran_int *lwork, fortran_int iwork[], fortran_int *info);
44
45extern fortran_int FNAME(zgelsd)zgelsd_(fortran_int *m, fortran_int *n, fortran_int *nrhs,
46 f2c_doublecomplex a[], fortran_int *lda,
47 f2c_doublecomplex b[], fortran_int *ldb,
48 double s[], double *rcond, fortran_int *rank,
49 f2c_doublecomplex work[], fortran_int *lwork,
50 double rwork[], fortran_int iwork[], fortran_int *info);
51
52extern fortran_int FNAME(dgeqrf)dgeqrf_(fortran_int *m, fortran_int *n, double a[], fortran_int *lda,
53 double tau[], double work[],
54 fortran_int *lwork, fortran_int *info);
55
56extern fortran_int FNAME(zgeqrf)zgeqrf_(fortran_int *m, fortran_int *n, f2c_doublecomplex a[], fortran_int *lda,
57 f2c_doublecomplex tau[], f2c_doublecomplex work[],
58 fortran_int *lwork, fortran_int *info);
59
60extern fortran_int FNAME(dorgqr)dorgqr_(fortran_int *m, fortran_int *n, fortran_int *k, double a[], fortran_int *lda,
61 double tau[], double work[],
62 fortran_int *lwork, fortran_int *info);
63
64extern fortran_int FNAME(zungqr)zungqr_(fortran_int *m, fortran_int *n, fortran_int *k, f2c_doublecomplex a[],
65 fortran_int *lda, f2c_doublecomplex tau[],
66 f2c_doublecomplex work[], fortran_int *lwork, fortran_int *info);
67
68extern fortran_int FNAME(xerbla)xerbla_(char *srname, fortran_int *info);
69
70static PyObject *LapackError;
71
72#define TRY(E)if (!(E)) return ((void*)0) if (!(E)) return NULL((void*)0)
73
74static int
75check_object(PyObject *ob, int t, char *obname,
76 char *tname, char *funname)
77{
78 if (!PyArray_Check(ob)((((PyObject*)(ob))->ob_type) == (&(*(PyTypeObject *)PyArray_API
[2])) || PyType_IsSubtype((((PyObject*)(ob))->ob_type), (&
(*(PyTypeObject *)PyArray_API[2]))))
) {
79 PyErr_Format(LapackError,
80 "Expected an array for parameter %s in lapack_lite.%s",
81 obname, funname);
82 return 0;
83 }
84 else if (!PyArray_IS_C_CONTIGUOUS((PyArrayObject *)ob)PyArray_CHKFLAGS(((PyArrayObject *)ob), 0x0001)) {
85 PyErr_Format(LapackError,
86 "Parameter %s is not contiguous in lapack_lite.%s",
87 obname, funname);
88 return 0;
89 }
90 else if (!(PyArray_TYPE((PyArrayObject *)ob) == t)) {
91 PyErr_Format(LapackError,
92 "Parameter %s is not of type %s in lapack_lite.%s",
93 obname, tname, funname);
94 return 0;
95 }
96 else if (PyArray_ISBYTESWAPPED((PyArrayObject *)ob)(!((PyArray_DESCR((PyArrayObject *)ob)->byteorder) != '>'
))
) {
97 PyErr_Format(LapackError,
98 "Parameter %s has non-native byte order in lapack_lite.%s",
99 obname, funname);
100 return 0;
101 }
102 else {
103 return 1;
104 }
105}
106
107#define CHDATA(p)((char *) PyArray_DATA((PyArrayObject *)p)) ((char *) PyArray_DATA((PyArrayObject *)p))
108#define SHDATA(p)((short int *) PyArray_DATA((PyArrayObject *)p)) ((short int *) PyArray_DATA((PyArrayObject *)p))
109#define DDATA(p)((double *) PyArray_DATA((PyArrayObject *)p)) ((double *) PyArray_DATA((PyArrayObject *)p))
110#define FDATA(p)((float *) PyArray_DATA((PyArrayObject *)p)) ((float *) PyArray_DATA((PyArrayObject *)p))
111#define CDATA(p)((f2c_complex *) PyArray_DATA((PyArrayObject *)p)) ((f2c_complex *) PyArray_DATA((PyArrayObject *)p))
112#define ZDATA(p)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)p)) ((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)p))
113#define IDATA(p)((fortran_int *) PyArray_DATA((PyArrayObject *)p)) ((fortran_int *) PyArray_DATA((PyArrayObject *)p))
114
115static PyObject *
116lapack_lite_dgelsd(PyObject *NPY_UNUSED(self)(__NPY_UNUSED_TAGGEDself) __attribute__ ((__unused__)), PyObject *args)
117{
118 fortran_int lapack_lite_status;
119 fortran_int m;
120 fortran_int n;
121 fortran_int nrhs;
122 PyObject *a;
123 fortran_int lda;
124 PyObject *b;
125 fortran_int ldb;
126 PyObject *s;
127 double rcond;
128 fortran_int rank;
129 PyObject *work;
130 PyObject *iwork;
131 fortran_int lwork;
132 fortran_int info;
133
134 TRY(PyArg_ParseTuple(args,if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "O"
"d" "i" "O" "i" "O" "i" ":dgelsd"), &m,&n,&nrhs,
&a,&lda,&b,&ldb,&s,&rcond, &rank,
&work,&lwork,&iwork,&info))) return ((void*)0
)
135 (FINT_PYFMT FINT_PYFMT FINT_PYFMT "O" FINT_PYFMT "O"if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "O"
"d" "i" "O" "i" "O" "i" ":dgelsd"), &m,&n,&nrhs,
&a,&lda,&b,&ldb,&s,&rcond, &rank,
&work,&lwork,&iwork,&info))) return ((void*)0
)
136 FINT_PYFMT "O" "d" FINT_PYFMT "O" FINT_PYFMT "O"if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "O"
"d" "i" "O" "i" "O" "i" ":dgelsd"), &m,&n,&nrhs,
&a,&lda,&b,&ldb,&s,&rcond, &rank,
&work,&lwork,&iwork,&info))) return ((void*)0
)
137 FINT_PYFMT ":dgelsd"),if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "O"
"d" "i" "O" "i" "O" "i" ":dgelsd"), &m,&n,&nrhs,
&a,&lda,&b,&ldb,&s,&rcond, &rank,
&work,&lwork,&iwork,&info))) return ((void*)0
)
138 &m,&n,&nrhs,&a,&lda,&b,&ldb,&s,&rcond,if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "O"
"d" "i" "O" "i" "O" "i" ":dgelsd"), &m,&n,&nrhs,
&a,&lda,&b,&ldb,&s,&rcond, &rank,
&work,&lwork,&iwork,&info))) return ((void*)0
)
139 &rank,&work,&lwork,&iwork,&info))if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "O"
"d" "i" "O" "i" "O" "i" ":dgelsd"), &m,&n,&nrhs,
&a,&lda,&b,&ldb,&s,&rcond, &rank,
&work,&lwork,&iwork,&info))) return ((void*)0
)
;
140
141 TRY(check_object(a,NPY_DOUBLE,"a","NPY_DOUBLE","dgelsd"))if (!(check_object(a,NPY_DOUBLE,"a","NPY_DOUBLE","dgelsd"))) return
((void*)0)
;
142 TRY(check_object(b,NPY_DOUBLE,"b","NPY_DOUBLE","dgelsd"))if (!(check_object(b,NPY_DOUBLE,"b","NPY_DOUBLE","dgelsd"))) return
((void*)0)
;
143 TRY(check_object(s,NPY_DOUBLE,"s","NPY_DOUBLE","dgelsd"))if (!(check_object(s,NPY_DOUBLE,"s","NPY_DOUBLE","dgelsd"))) return
((void*)0)
;
144 TRY(check_object(work,NPY_DOUBLE,"work","NPY_DOUBLE","dgelsd"))if (!(check_object(work,NPY_DOUBLE,"work","NPY_DOUBLE","dgelsd"
))) return ((void*)0)
;
145#ifndef NPY_UMATH_USE_BLAS64_
146 TRY(check_object(iwork,NPY_INT,"iwork","NPY_INT","dgelsd"))if (!(check_object(iwork,NPY_INT,"iwork","NPY_INT","dgelsd"))
) return ((void*)0)
;
147#else
148 TRY(check_object(iwork,NPY_INT64,"iwork","NPY_INT64","dgelsd"))if (!(check_object(iwork,NPY_LONG,"iwork","NPY_INT64","dgelsd"
))) return ((void*)0)
;
149#endif
150
151 lapack_lite_status =
152 FNAME(dgelsd)dgelsd_(&m,&n,&nrhs,DDATA(a)((double *) PyArray_DATA((PyArrayObject *)a)),&lda,DDATA(b)((double *) PyArray_DATA((PyArrayObject *)b)),&ldb,
153 DDATA(s)((double *) PyArray_DATA((PyArrayObject *)s)),&rcond,&rank,DDATA(work)((double *) PyArray_DATA((PyArrayObject *)work)),&lwork,
154 IDATA(iwork)((fortran_int *) PyArray_DATA((PyArrayObject *)iwork)),&info);
155 if (PyErr_Occurred()) {
156 return NULL((void*)0);
157 }
158
159 return Py_BuildValue(("{s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
160 ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
161 ",s:d,s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
162 ",s:" FINT_PYFMT"i" "}"),
163 "dgelsd_",lapack_lite_status,"m",m,"n",n,"nrhs",nrhs,
164 "lda",lda,"ldb",ldb,"rcond",rcond,"rank",rank,
165 "lwork",lwork,"info",info);
166}
167
168static PyObject *
169lapack_lite_dgeqrf(PyObject *NPY_UNUSED(self)(__NPY_UNUSED_TAGGEDself) __attribute__ ((__unused__)), PyObject *args)
170{
171 fortran_int lapack_lite_status;
172 fortran_int m, n, lwork;
173 PyObject *a, *tau, *work;
174 fortran_int lda;
175 fortran_int info;
176
177 TRY(PyArg_ParseTuple(args,if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "i" ":dgeqrf"
), &m,&n,&a,&lda,&tau,&work,&lwork
,&info))) return ((void*)0)
178 (FINT_PYFMT FINT_PYFMT "O" FINT_PYFMT "OO"if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "i" ":dgeqrf"
), &m,&n,&a,&lda,&tau,&work,&lwork
,&info))) return ((void*)0)
179 FINT_PYFMT FINT_PYFMT ":dgeqrf"),if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "i" ":dgeqrf"
), &m,&n,&a,&lda,&tau,&work,&lwork
,&info))) return ((void*)0)
180 &m,&n,&a,&lda,&tau,&work,&lwork,&info))if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "i" ":dgeqrf"
), &m,&n,&a,&lda,&tau,&work,&lwork
,&info))) return ((void*)0)
;
181
182 /* check objects and convert to right storage order */
183 TRY(check_object(a,NPY_DOUBLE,"a","NPY_DOUBLE","dgeqrf"))if (!(check_object(a,NPY_DOUBLE,"a","NPY_DOUBLE","dgeqrf"))) return
((void*)0)
;
184 TRY(check_object(tau,NPY_DOUBLE,"tau","NPY_DOUBLE","dgeqrf"))if (!(check_object(tau,NPY_DOUBLE,"tau","NPY_DOUBLE","dgeqrf"
))) return ((void*)0)
;
185 TRY(check_object(work,NPY_DOUBLE,"work","NPY_DOUBLE","dgeqrf"))if (!(check_object(work,NPY_DOUBLE,"work","NPY_DOUBLE","dgeqrf"
))) return ((void*)0)
;
186
187 lapack_lite_status =
188 FNAME(dgeqrf)dgeqrf_(&m, &n, DDATA(a)((double *) PyArray_DATA((PyArrayObject *)a)), &lda, DDATA(tau)((double *) PyArray_DATA((PyArrayObject *)tau)),
189 DDATA(work)((double *) PyArray_DATA((PyArrayObject *)work)), &lwork, &info);
190 if (PyErr_Occurred()) {
191 return NULL((void*)0);
192 }
193
194 return Py_BuildValue(("{s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
195 ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" "}"),
196 "dgeqrf_",
197 lapack_lite_status,"m",m,"n",n,"lda",lda,
198 "lwork",lwork,"info",info);
199}
200
201
202static PyObject *
203lapack_lite_dorgqr(PyObject *NPY_UNUSED(self)(__NPY_UNUSED_TAGGEDself) __attribute__ ((__unused__)), PyObject *args)
204{
205 fortran_int lapack_lite_status;
206 fortran_int m, n, k, lwork;
207 PyObject *a, *tau, *work;
208 fortran_int lda;
209 fortran_int info;
210
211 TRY(PyArg_ParseTuple(args,if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" "i"
":dorgqr"), &m, &n, &k, &a, &lda, &tau
, &work, &lwork, &info))) return ((void*)0)
212 (FINT_PYFMT FINT_PYFMT FINT_PYFMT "O"if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" "i"
":dorgqr"), &m, &n, &k, &a, &lda, &tau
, &work, &lwork, &info))) return ((void*)0)
213 FINT_PYFMT "OO" FINT_PYFMT FINT_PYFMTif (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" "i"
":dorgqr"), &m, &n, &k, &a, &lda, &tau
, &work, &lwork, &info))) return ((void*)0)
214 ":dorgqr"),if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" "i"
":dorgqr"), &m, &n, &k, &a, &lda, &tau
, &work, &lwork, &info))) return ((void*)0)
215 &m, &n, &k, &a, &lda, &tau, &work, &lwork, &info))if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" "i"
":dorgqr"), &m, &n, &k, &a, &lda, &tau
, &work, &lwork, &info))) return ((void*)0)
;
216 TRY(check_object(a,NPY_DOUBLE,"a","NPY_DOUBLE","dorgqr"))if (!(check_object(a,NPY_DOUBLE,"a","NPY_DOUBLE","dorgqr"))) return
((void*)0)
;
217 TRY(check_object(tau,NPY_DOUBLE,"tau","NPY_DOUBLE","dorgqr"))if (!(check_object(tau,NPY_DOUBLE,"tau","NPY_DOUBLE","dorgqr"
))) return ((void*)0)
;
218 TRY(check_object(work,NPY_DOUBLE,"work","NPY_DOUBLE","dorgqr"))if (!(check_object(work,NPY_DOUBLE,"work","NPY_DOUBLE","dorgqr"
))) return ((void*)0)
;
219 lapack_lite_status =
220 FNAME(dorgqr)dorgqr_(&m, &n, &k, DDATA(a)((double *) PyArray_DATA((PyArrayObject *)a)), &lda, DDATA(tau)((double *) PyArray_DATA((PyArrayObject *)tau)), DDATA(work)((double *) PyArray_DATA((PyArrayObject *)work)),
221 &lwork, &info);
222 if (PyErr_Occurred()) {
223 return NULL((void*)0);
224 }
225
226 return Py_BuildValue("{s:i,s:i}","dorgqr_",lapack_lite_status,
227 "info",info);
228}
229
230
231static PyObject *
232lapack_lite_zgelsd(PyObject *NPY_UNUSED(self)(__NPY_UNUSED_TAGGEDself) __attribute__ ((__unused__)), PyObject *args)
233{
234 fortran_int lapack_lite_status;
235 fortran_int m;
236 fortran_int n;
237 fortran_int nrhs;
238 PyObject *a;
239 fortran_int lda;
240 PyObject *b;
241 fortran_int ldb;
242 PyObject *s;
243 double rcond;
244 fortran_int rank;
245 PyObject *work;
246 fortran_int lwork;
247 PyObject *rwork;
248 PyObject *iwork;
249 fortran_int info;
250 TRY(PyArg_ParseTuple(args,if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "Od"
"i" "O" "i" "OO" "i" ":zgelsd"), &m,&n,&nrhs,&
a,&lda,&b,&ldb,&s,&rcond, &rank,&
work,&lwork,&rwork,&iwork,&info))) return ((void
*)0)
251 (FINT_PYFMT FINT_PYFMT FINT_PYFMT "O" FINT_PYFMTif (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "Od"
"i" "O" "i" "OO" "i" ":zgelsd"), &m,&n,&nrhs,&
a,&lda,&b,&ldb,&s,&rcond, &rank,&
work,&lwork,&rwork,&iwork,&info))) return ((void
*)0)
252 "O" FINT_PYFMT "Od" FINT_PYFMT "O" FINT_PYFMTif (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "Od"
"i" "O" "i" "OO" "i" ":zgelsd"), &m,&n,&nrhs,&
a,&lda,&b,&ldb,&s,&rcond, &rank,&
work,&lwork,&rwork,&iwork,&info))) return ((void
*)0)
253 "OO" FINT_PYFMT ":zgelsd"),if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "Od"
"i" "O" "i" "OO" "i" ":zgelsd"), &m,&n,&nrhs,&
a,&lda,&b,&ldb,&s,&rcond, &rank,&
work,&lwork,&rwork,&iwork,&info))) return ((void
*)0)
254 &m,&n,&nrhs,&a,&lda,&b,&ldb,&s,&rcond,if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "Od"
"i" "O" "i" "OO" "i" ":zgelsd"), &m,&n,&nrhs,&
a,&lda,&b,&ldb,&s,&rcond, &rank,&
work,&lwork,&rwork,&iwork,&info))) return ((void
*)0)
255 &rank,&work,&lwork,&rwork,&iwork,&info))if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "O" "i" "Od"
"i" "O" "i" "OO" "i" ":zgelsd"), &m,&n,&nrhs,&
a,&lda,&b,&ldb,&s,&rcond, &rank,&
work,&lwork,&rwork,&iwork,&info))) return ((void
*)0)
;
256
257 TRY(check_object(a,NPY_CDOUBLE,"a","NPY_CDOUBLE","zgelsd"))if (!(check_object(a,NPY_CDOUBLE,"a","NPY_CDOUBLE","zgelsd"))
) return ((void*)0)
;
258 TRY(check_object(b,NPY_CDOUBLE,"b","NPY_CDOUBLE","zgelsd"))if (!(check_object(b,NPY_CDOUBLE,"b","NPY_CDOUBLE","zgelsd"))
) return ((void*)0)
;
259 TRY(check_object(s,NPY_DOUBLE,"s","NPY_DOUBLE","zgelsd"))if (!(check_object(s,NPY_DOUBLE,"s","NPY_DOUBLE","zgelsd"))) return
((void*)0)
;
260 TRY(check_object(work,NPY_CDOUBLE,"work","NPY_CDOUBLE","zgelsd"))if (!(check_object(work,NPY_CDOUBLE,"work","NPY_CDOUBLE","zgelsd"
))) return ((void*)0)
;
261 TRY(check_object(rwork,NPY_DOUBLE,"rwork","NPY_DOUBLE","zgelsd"))if (!(check_object(rwork,NPY_DOUBLE,"rwork","NPY_DOUBLE","zgelsd"
))) return ((void*)0)
;
262#ifndef NPY_UMATH_USE_BLAS64_
263 TRY(check_object(iwork,NPY_INT,"iwork","NPY_INT","zgelsd"))if (!(check_object(iwork,NPY_INT,"iwork","NPY_INT","zgelsd"))
) return ((void*)0)
;
264#else
265 TRY(check_object(iwork,NPY_INT64,"iwork","NPY_INT64","zgelsd"))if (!(check_object(iwork,NPY_LONG,"iwork","NPY_INT64","zgelsd"
))) return ((void*)0)
;
266#endif
267
268 lapack_lite_status =
269 FNAME(zgelsd)zgelsd_(&m,&n,&nrhs,ZDATA(a)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)a)),&lda,ZDATA(b)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)b)),&ldb,DDATA(s)((double *) PyArray_DATA((PyArrayObject *)s)),&rcond,
270 &rank,ZDATA(work)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)work)),&lwork,DDATA(rwork)((double *) PyArray_DATA((PyArrayObject *)rwork)),IDATA(iwork)((fortran_int *) PyArray_DATA((PyArrayObject *)iwork)),&info);
271 if (PyErr_Occurred()) {
272 return NULL((void*)0);
273 }
274
275 return Py_BuildValue(("{s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
276 ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
277 ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
278 "}"),
279 "zgelsd_",
280 lapack_lite_status,"m",m,"n",n,"nrhs",nrhs,"lda",lda,
281 "ldb",ldb,"rank",rank,"lwork",lwork,"info",info);
282}
283
284static PyObject *
285lapack_lite_zgeqrf(PyObject *NPY_UNUSED(self)(__NPY_UNUSED_TAGGEDself) __attribute__ ((__unused__)), PyObject *args)
286{
287 fortran_int lapack_lite_status;
288 fortran_int m, n, lwork;
289 PyObject *a, *tau, *work;
290 fortran_int lda;
291 fortran_int info;
292
293 TRY(PyArg_ParseTuple(args,if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "" "i"
":zgeqrf"), &m,&n,&a,&lda,&tau,&work
,&lwork,&info))) return ((void*)0)
294 (FINT_PYFMT FINT_PYFMT "O" FINT_PYFMT "OO"if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "" "i"
":zgeqrf"), &m,&n,&a,&lda,&tau,&work
,&lwork,&info))) return ((void*)0)
295 FINT_PYFMT "" FINT_PYFMT ":zgeqrf"),if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "" "i"
":zgeqrf"), &m,&n,&a,&lda,&tau,&work
,&lwork,&info))) return ((void*)0)
296 &m,&n,&a,&lda,&tau,&work,&lwork,&info))if (!(PyArg_ParseTuple(args, ("i" "i" "O" "i" "OO" "i" "" "i"
":zgeqrf"), &m,&n,&a,&lda,&tau,&work
,&lwork,&info))) return ((void*)0)
;
297
298/* check objects and convert to right storage order */
299 TRY(check_object(a,NPY_CDOUBLE,"a","NPY_CDOUBLE","zgeqrf"))if (!(check_object(a,NPY_CDOUBLE,"a","NPY_CDOUBLE","zgeqrf"))
) return ((void*)0)
;
300 TRY(check_object(tau,NPY_CDOUBLE,"tau","NPY_CDOUBLE","zgeqrf"))if (!(check_object(tau,NPY_CDOUBLE,"tau","NPY_CDOUBLE","zgeqrf"
))) return ((void*)0)
;
301 TRY(check_object(work,NPY_CDOUBLE,"work","NPY_CDOUBLE","zgeqrf"))if (!(check_object(work,NPY_CDOUBLE,"work","NPY_CDOUBLE","zgeqrf"
))) return ((void*)0)
;
302
303 lapack_lite_status =
304 FNAME(zgeqrf)zgeqrf_(&m, &n, ZDATA(a)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)a)), &lda, ZDATA(tau)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)tau)), ZDATA(work)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)work)),
305 &lwork, &info);
306 if (PyErr_Occurred()) {
307 return NULL((void*)0);
308 }
309
310 return Py_BuildValue(("{s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
311 ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i"
312 ",s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" "}"),
313 "zgeqrf_",lapack_lite_status,"m",m,"n",n,"lda",lda,"lwork",lwork,"info",info);
314}
315
316
317static PyObject *
318lapack_lite_zungqr(PyObject *NPY_UNUSED(self)(__NPY_UNUSED_TAGGEDself) __attribute__ ((__unused__)), PyObject *args)
319{
320 fortran_int lapack_lite_status;
321 fortran_int m, n, k, lwork;
322 PyObject *a, *tau, *work;
323 fortran_int lda;
324 fortran_int info;
325
326 TRY(PyArg_ParseTuple(args,if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" ""
"i" ":zungqr"), &m, &n, &k, &a, &lda, &
tau, &work, &lwork, &info))) return ((void*)0)
327 (FINT_PYFMT FINT_PYFMT FINT_PYFMT "O"if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" ""
"i" ":zungqr"), &m, &n, &k, &a, &lda, &
tau, &work, &lwork, &info))) return ((void*)0)
328 FINT_PYFMT "OO" FINT_PYFMT "" FINT_PYFMTif (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" ""
"i" ":zungqr"), &m, &n, &k, &a, &lda, &
tau, &work, &lwork, &info))) return ((void*)0)
329 ":zungqr"),if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" ""
"i" ":zungqr"), &m, &n, &k, &a, &lda, &
tau, &work, &lwork, &info))) return ((void*)0)
330 &m, &n, &k, &a, &lda, &tau, &work, &lwork, &info))if (!(PyArg_ParseTuple(args, ("i" "i" "i" "O" "i" "OO" "i" ""
"i" ":zungqr"), &m, &n, &k, &a, &lda, &
tau, &work, &lwork, &info))) return ((void*)0)
;
331 TRY(check_object(a,NPY_CDOUBLE,"a","NPY_CDOUBLE","zungqr"))if (!(check_object(a,NPY_CDOUBLE,"a","NPY_CDOUBLE","zungqr"))
) return ((void*)0)
;
332 TRY(check_object(tau,NPY_CDOUBLE,"tau","NPY_CDOUBLE","zungqr"))if (!(check_object(tau,NPY_CDOUBLE,"tau","NPY_CDOUBLE","zungqr"
))) return ((void*)0)
;
333 TRY(check_object(work,NPY_CDOUBLE,"work","NPY_CDOUBLE","zungqr"))if (!(check_object(work,NPY_CDOUBLE,"work","NPY_CDOUBLE","zungqr"
))) return ((void*)0)
;
334
335
336 lapack_lite_status =
337 FNAME(zungqr)zungqr_(&m, &n, &k, ZDATA(a)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)a)), &lda, ZDATA(tau)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)tau)), ZDATA(work)((f2c_doublecomplex *) PyArray_DATA((PyArrayObject *)work)),
338 &lwork, &info);
339 if (PyErr_Occurred()) {
340 return NULL((void*)0);
341 }
342
343 return Py_BuildValue(("{s:" FINT_PYFMT"i" ",s:" FINT_PYFMT"i" "}"),
344 "zungqr_",lapack_lite_status,
345 "info",info);
346}
347
348
349static PyObject *
350lapack_lite_xerbla(PyObject *NPY_UNUSED(self)(__NPY_UNUSED_TAGGEDself) __attribute__ ((__unused__)), PyObject *args)
351{
352 fortran_int info = -1;
353
354 NPY_BEGIN_THREADS_DEFPyThreadState *_save=((void*)0);;
355 NPY_BEGIN_THREADSdo {_save = PyEval_SaveThread();} while (0);;
356 FNAME(xerbla)xerbla_("test", &info);
357 NPY_END_THREADSdo { if (_save) { PyEval_RestoreThread(_save); _save = ((void
*)0);} } while (0);
;
358
359 if (PyErr_Occurred()) {
360 return NULL((void*)0);
361 }
362 Py_RETURN_NONEreturn _Py_INCREF(((PyObject*)((&_Py_NoneStruct)))), (&
_Py_NoneStruct)
;
363}
364
365
366#define STR(x)"x" #x
367#define lameth(name){"name", lapack_lite_name, 0x0001, ((void*)0)} {STR(name)"name", lapack_lite_##name, METH_VARARGS0x0001, NULL((void*)0)}
368static struct PyMethodDef lapack_lite_module_methods[] = {
369 lameth(dgelsd){"dgelsd", lapack_lite_dgelsd, 0x0001, ((void*)0)},
370 lameth(dgeqrf){"dgeqrf", lapack_lite_dgeqrf, 0x0001, ((void*)0)},
371 lameth(dorgqr){"dorgqr", lapack_lite_dorgqr, 0x0001, ((void*)0)},
372 lameth(zgelsd){"zgelsd", lapack_lite_zgelsd, 0x0001, ((void*)0)},
373 lameth(zgeqrf){"zgeqrf", lapack_lite_zgeqrf, 0x0001, ((void*)0)},
374 lameth(zungqr){"zungqr", lapack_lite_zungqr, 0x0001, ((void*)0)},
375 lameth(xerbla){"xerbla", lapack_lite_xerbla, 0x0001, ((void*)0)},
376 { NULL((void*)0),NULL((void*)0),0, NULL((void*)0)}
377};
378
379
380static struct PyModuleDef moduledef = {
381 PyModuleDef_HEAD_INIT{ { 1, ((void*)0) }, ((void*)0), 0, ((void*)0), },
382 "lapack_lite",
383 NULL((void*)0),
384 -1,
385 lapack_lite_module_methods,
386 NULL((void*)0),
387 NULL((void*)0),
388 NULL((void*)0),
389 NULL((void*)0)
390};
391
392/* Initialization function for the module */
393PyMODINIT_FUNCPyObject* PyInit_lapack_lite(void)
394{
395 PyObject *m,*d;
396 m = PyModule_Create(&moduledef)PyModule_Create2(&moduledef, 1013);
1
Calling 'PyModule_Create2'
3
Returning from 'PyModule_Create2'
7
PyObject ownership leak with reference count of 1
397 if (m == NULL((void*)0)) {
4
Assuming 'm' is not equal to NULL
5
Taking false branch
398 return NULL((void*)0);
399 }
400 import_array(){if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(
PyExc_ImportError, "numpy.core.multiarray failed to import");
return ((void*)0); } }
;
6
Taking true branch
401 d = PyModule_GetDict(m);
402 LapackError = PyErr_NewException("lapack_lite.LapackError", NULL((void*)0), NULL((void*)0));
403 PyDict_SetItemString(d, "LapackError", LapackError);
404
405#ifdef HAVE_BLAS_ILP64
406 PyDict_SetItemString(d, "_ilp64", Py_True((PyObject *) &_Py_TrueStruct));
407#else
408 PyDict_SetItemString(d, "_ilp64", Py_False((PyObject *) &_Py_FalseStruct));
409#endif
410
411 return m;
412}

/opt/pyrefcon/lib/pyrefcon/models/models/PyModule_Create2.model

1#ifndef PyModule_Create2
2struct _object;
3typedef struct _object PyObject;
4PyObject* clang_analyzer_PyObject_New_Reference();
5PyObject* PyModule_Create2(PyModuleDef *def, int module_api_version) {
6 return clang_analyzer_PyObject_New_Reference();
2
Setting reference count to 1
7}
8#else
9#warning "API PyModule_Create2 is defined as a macro."
10#endif