fml  0.1-0
Fused Matrix Library
_lapack_prototypes.h
1 // This file is part of fml which is released under the Boost Software
2 // License, Version 1.0. See accompanying file LICENSE or copy at
3 // https://www.boost.org/LICENSE_1_0.txt
4 
5 #ifndef FML_CPU_INTERNALS__LAPACK_PROTOTYPES_H
6 #define FML_CPU_INTERNALS__LAPACK_PROTOTYPES_H
7 #pragma once
8 
9 
10 #ifndef restrict
11 #define restrict __restrict__
12 #endif
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 
19 extern void sgetrf_(const int *const restrict m, const int *const restrict n,
20  float *const restrict a, const int *const lda,
21  int *const restrict ipiv, int *const restrict info);
22 
23 extern void dgetrf_(const int *const restrict m, const int *const restrict n,
24  double *const restrict a, const int *const lda,
25  int *const restrict ipiv, int *const restrict info);
26 
27 
28 
29 extern void sgesdd_(const char *const restrict jobz, const int *const restrict m,
30  const int *const restrict n, float *const restrict a,
31  const int *const restrict lda, float *const restrict s,
32  float *const restrict u, const int *const restrict ldu,
33  float *const restrict vt, const int *const restrict ldvt,
34  float *const restrict work, const int *const restrict lwork,
35  int *const restrict iwork, int *const restrict info);
36 
37 extern void dgesdd_(const char *const restrict jobz, const int *const restrict m,
38  const int *const restrict n, double *const restrict a,
39  const int *const restrict lda, double *const restrict s,
40  double *const restrict u, const int *const restrict ldu,
41  double *const restrict vt, const int *const restrict ldvt,
42  double *const restrict work, const int *const restrict lwork,
43  int *const restrict iwork, int *const restrict info);
44 
45 
46 
47 extern void ssyevr_(const char *restrict jobz, const char *restrict range,
48  const char *restrict uplo, const int *restrict n, float *restrict a,
49  const int *restrict lda, const float *restrict vl, const float *restrict vu,
50  const int *restrict il, const int *restrict iu, const float *restrict abstol,
51  const int *restrict m, float *w, float *z, const int *restrict ldz,
52  int *isuppz, float *work, const int *lwork, int *iwork, const int *liwork,
53  int *info);
54 
55 extern void dsyevr_(const char *restrict jobz, const char *restrict range,
56  const char *restrict uplo, const int *restrict n, double *restrict a,
57  const int *restrict lda, const double *restrict vl, const double *restrict vu,
58  const int *restrict il, const int *restrict iu, const double *restrict abstol,
59  const int *restrict m, double *w, double *z, const int *restrict ldz,
60  int *isuppz, double *work, const int *lwork, int *iwork, const int *liwork,
61  int *info);
62 
63 
64 
65 extern void sgeev_(const char *restrict jobvl, const char *restrict jobvr,
66  const int *n, float *restrict a, const int *lda, float *restrict wr,
67  float *restrict wi, float *restrict vl, const int *ldvl,
68  float *restrict vr, const int *ldvr, float *restrict work,
69  const int *restrict lwork, int *restrict info);
70 
71 extern void dgeev_(const char *restrict jobvl, const char *restrict jobvr,
72  const int *n, double *restrict a, const int *lda, double *restrict wr,
73  double *restrict wi, double *restrict vl, const int *ldvl,
74  double *restrict vr, const int *ldvr, double *restrict work,
75  const int *restrict lwork, int *restrict info);
76 
77 
78 
79 extern void sgetri_(const int *n, float *restrict a, const int *lda,
80  int *restrict ipiv, float *restrict work, const int *restrict lwork,
81  int *info);
82 
83 extern void dgetri_(const int *n, double *restrict a, const int *lda,
84  int *restrict ipiv, double *restrict work, const int *restrict lwork,
85  int *info);
86 
87 
88 
89 extern void sgesv_(const int *n, const int *restrict nrhs, float *restrict a,
90  const int *lda, int *restrict ipiv, float *restrict b, const int *ldb,
91  int *restrict info);
92 
93 extern void dgesv_(const int *n, const int *restrict nrhs, double *restrict a,
94  const int *lda, int *restrict ipiv, double *restrict b, const int *ldb,
95  int *restrict info);
96 
97 
98 
99 extern void slacpy_(const char *uplo, const int *m, const int *n,
100  const float *restrict a, const int *lda, float *restrict b, const int *ldb);
101 
102 extern void dlacpy_(const char *uplo, const int *m, const int *n,
103  const double *restrict a, const int *lda, double *restrict b, const int *ldb);
104 
105 
106 
107 extern void sgeqp3_(const int *const m, const int *const n,
108  float *const restrict A, const int *const lda, int *const restrict jpvt,
109  float *const restrict tau, float *const restrict work,
110  const int *const restrict lwork, int *const restrict info);
111 
112 extern void dgeqp3_(const int *const m, const int *const n,
113  double *const restrict A, const int *const lda, int *const restrict jpvt,
114  double *const restrict tau, double *const restrict work,
115  const int *const restrict lwork, int *const restrict info);
116 
117 
118 
119 extern void sgeqrf_(const int *const m, const int *const n,
120  float *const restrict A, const int *const lda, float *const restrict tau,
121  float *const restrict work, const int *const restrict lwork,
122  int *const restrict info);
123 
124 extern void dgeqrf_(const int *const m, const int *const n,
125  double *const restrict A, const int *const lda, double *const restrict tau,
126  double *const restrict work, const int *const restrict lwork,
127  int *const restrict info);
128 
129 
130 
131 extern void sormqr_(const char *side, const char *trans, const int *m,
132  const int *n, const int *k, const float *const restrict A, const int *lda,
133  const float *const restrict tau, float *const restrict c, const int *ldc,
134  float *const restrict work, const int *lwork, int *const restrict info);
135 
136 extern void dormqr_(const char *side, const char *trans, const int *m,
137  const int *n, const int *k, const double *const restrict A, const int *lda,
138  const double *const restrict tau, double *const restrict c, const int *ldc,
139  double *const restrict work, const int *lwork, int *const restrict info);
140 
141 
142 
143 extern void sorgqr_(const int *m, const int *n, const int *k, float *A,
144  const int *lda, const float *tau, float *work, const int *ldwork, int *info);
145 
146 extern void dorgqr_(const int *m, const int *n, const int *k, double *A,
147  const int *lda, const double *tau, double *work, const int *ldwork, int *info);
148 
149 
150 
151 extern void sorglq_(const int *m, const int *n, const int *k, float *A,
152  const int *lda, const float *tau, float *work, const int *ldwork, int *info);
153 
154 extern void dorglq_(const int *m, const int *n, const int *k, double *A,
155  const int *lda, const double *tau, double *work, const int *ldwork, int *info);
156 
157 
158 
159 extern void sgelqf_(const int *const m, const int *const n,
160  float *const restrict A, const int *const lda, float *const restrict tau,
161  float *const restrict work, const int *const restrict lwork,
162  int *const restrict info);
163 
164 extern void dgelqf_(const int *const m, const int *const n,
165  double *const restrict A, const int *const lda, double *const restrict tau,
166  double *const restrict work, const int *const restrict lwork,
167  int *const restrict info);
168 
169 
170 
171 extern void sormlq_(const char *side, const char *trans, const int *m,
172  const int *n, const int *k, const float *const restrict A, const int *lda,
173  const float *const restrict tau, float *const restrict c, const int *ldc,
174  float *const restrict work, const int *lwork, int *const restrict info);
175 
176 extern void dormlq_(const char *side, const char *trans, const int *m,
177  const int *n, const int *k, const double *const restrict A, const int *lda,
178  const double *const restrict tau, double *const restrict c, const int *ldc,
179  double *const restrict work, const int *lwork, int *const restrict info);
180 
181 
182 
183 extern void spotrf_(const char *uplo, const int *n, float *const restrict A,
184  const int *lda, int *info);
185 
186 extern void dpotrf_(const char *uplo, const int *n, double *const restrict A,
187  const int *lda, int *info);
188 
189 
190 
191 extern void slassq_(const int *n, const float *restrict x, const int *incx,
192  float *scale, float *sumsq);
193 
194 extern void dlassq_(const int *n, const double *restrict x, const int *incx,
195  double *scale, double *sumsq);
196 
197 
198 
199 extern void sgecon_(const char *norm, const int *n,
200  const float *const restrict A, const int *lda, const float *anorm,
201  float *rcond, float *work, float *work2, int *info);
202 
203 extern void dgecon_(const char *norm, const int *n,
204  const double *const restrict A, const int *lda, const double *anorm,
205  double *rcond, double *work, double *work2, int *info);
206 
207 
208 
209 extern void strcon_(const char *norm, const char *uplo, const char *diag,
210  const int *n, const float *const restrict A, const int *lda, float *rcond,
211  float *work, float *work2, int *info);
212 
213 extern void dtrcon_(const char *norm, const char *uplo, const char *diag,
214  const int *n, const double *const restrict A, const int *lda, double *rcond,
215  double *work, double *work2, int *info);
216 
217 
218 
219 extern void strtri_(const char *uplo, const char *diag, const int *n,
220  float *A, const int *lda, int *info);
221 
222 extern void dtrtri_(const char *uplo, const char *diag, const int *n,
223  double *A, const int *lda, int *info);
224 
225 
226 #ifdef __cplusplus
227 }
228 #endif
229 
230 
231 #endif