comparison liboctave/Matrix.h @ 232:e1b072bcffb9

[project @ 1993-11-16 10:44:39 by jwe]
author jwe
date Tue, 16 Nov 1993 10:44:56 +0000
parents 1a48a1b91489
children 780cbbc57b7c
comparison
equal deleted inserted replaced
231:9a6ecd8b50bc 232:e1b072bcffb9
53 typedef double (*d_d_Mapper)(double); 53 typedef double (*d_d_Mapper)(double);
54 typedef double (*d_c_Mapper)(const Complex&); 54 typedef double (*d_c_Mapper)(const Complex&);
55 typedef Complex (*c_c_Mapper)(const Complex&); 55 typedef Complex (*c_c_Mapper)(const Complex&);
56 56
57 #endif 57 #endif
58
59 #include "f77-uscore.h"
60
61 // Fortran functions we call.
62
63 extern "C"
64 {
65 int F77_FCN (dgemm) (const char*, const char*, const int*,
66 const int*, const int*, const double*,
67 const double*, const int*, const double*,
68 const int*, const double*, double*, const int*,
69 long, long);
70
71 int F77_FCN (dgemv) (const char*, const int*, const int*,
72 const double*, const double*, const int*,
73 const double*, const int*, const double*,
74 double*, const int*, long);
75
76 int F77_FCN (dgeco) (double*, const int*, const int*, int*, double*,
77 double*);
78
79 int F77_FCN (dgesv) (const int*, const int*, double*, const int*,
80 int*, double*, const int*, int*);
81
82 int F77_FCN (dgeqrf) (const int*, const int*, double*, const int*,
83 double*, double*, const int*, int*);
84
85 int F77_FCN (dorgqr) (const int*, const int*, const int*, double*,
86 const int*, double*, double*, const int*, int*);
87
88 int F77_FCN (dgesl) (const double*, const int*, const int*,
89 const int*, double*, const int*);
90
91 int F77_FCN (dgedi) (double*, const int*, const int*, const int*,
92 double*, double*, const int*);
93
94 double F77_FCN (ddot) (const int*, const double*, const int*,
95 const double*, const int*);
96
97 int F77_FCN (dgeev) (const char*, const char*, const int*, double*,
98 const int*, double*, double*, double*,
99 const int*, double*, const int*, double*,
100 const int*, int*, long, long);
101
102 int F77_FCN (dgeesx) (const char*, const char*, int (*)(), const char*,
103 const int*, double*, const int*, int*, double*,
104 double*, double*, const int*, double*, double*,
105 double*, const int*, int*, const int*, int*,
106 int*, long, long);
107
108 int F77_FCN (dhseqr) (const char*, const char*, const int*,
109 const int*, const int*, double*,
110 const int*, double*, double*,
111 double*, const int*, double*, const int*,
112 int*, long, long);
113
114 int F77_FCN (dgebal) (const char*, const int*, double*,
115 const int*, int*, int*, double*,
116 int*, long, long);
117
118 int F77_FCN (dgebak) (const char*, const char*, const int*, const int*,
119 const int*, double*, const int*, double*, const int*,
120 int*, long, long);
121
122 int F77_FCN (dgehrd) (const int*, const int*, const int*,
123 double*, const int*, double*, double*,
124 const int*, int*, long, long);
125
126 int F77_FCN (dorghr) (const int*, const int*, const int*,
127 double*, const int*, double*, double*,
128 const int*, int*, long, long);
129
130 int F77_FCN (dgesvd) (const char*, const char*, const int*,
131 const int*, double*, const int*, double*,
132 double*, const int*, double*, const int*,
133 double*, const int*, int*, long, long);
134
135 int F77_FCN (dgelss) (const int*, const int*, const int*, double*,
136 const int*, double*, const int*, double*,
137 const double*, int*, double*, const int*,
138 int*);
139
140 int F77_FCN (dpotrf) (const char*, const int*, double*, const int*,
141 int*, long);
142
143 //
144 // fortran functions for generalized eigenvalue problems
145 //
146 int F77_FCN (reduce) (const int*, const int*, double*,
147 const int*, double*,
148 int*, int*, double*, double*);
149
150 int F77_FCN (scaleg) (const int*, const int*, double*,
151 const int*, double*,
152 const int*, const int*, double*, double*, double*);
153
154 int F77_FCN (gradeq) (const int*, const int*, double*,
155 const int*, double*,
156 int*, int*, double*, double*);
157
158 /*
159 * f2c translates complex*16 as
160 *
161 * typedef struct { doublereal re, im; } doublecomplex;
162 *
163 * and Complex.h from libg++ uses
164 *
165 * protected:
166 * double re;
167 * double im;
168 *
169 * as the only data members, so this should work (fingers crossed that
170 * things don't change).
171 */
172
173 int F77_FCN (zgemm) (const char*, const char*, const int*,
174 const int*, const int*, const Complex*,
175 const Complex*, const int*, const Complex*,
176 const int*, const Complex*, Complex*, const int*,
177 long, long);
178
179 int F77_FCN (zgemv) (const char*, const int*, const int*,
180 const Complex*, const Complex*, const int*,
181 const Complex*, const int*, const Complex*,
182 Complex*, const int*, long);
183
184 int F77_FCN (zgeco) (Complex*, const int*, const int*, int*,
185 double*, Complex*);
186
187 int F77_FCN (zgesv) (const int*, const int*, Complex*, const int*,
188 int*, Complex*, const int*, int*);
189
190 int F77_FCN (zgeqrf) (const int*, const int*, Complex*, const int*,
191 Complex*, Complex*, const int*, int*);
192
193 int F77_FCN (zgeesx) (const char*, const char*, int (*)(), const char*,
194 const int*, Complex*, const int*, int*,
195 Complex*, Complex*, const int*, double*, double*,
196 Complex*, const int*, double*, int*, int*,
197 long, long);
198
199 int F77_FCN (zhseqr) (const char*, const char*, const int*,
200 const int*, const int*, Complex*, const int*,
201 Complex*, Complex*, const int*, Complex*,
202 const int*, int*, long, long);
203
204 int F77_FCN (zgebal) (const char*, const int*, Complex*, const int*,
205 int*, int*, double*, int*, long, long);
206
207 int F77_FCN (zgebak) (const char*, const char*, const int*, const int*,
208 const int*, double*, const int*, Complex*,
209 const int*, int*, long, long);
210
211 int F77_FCN (zgehrd) (const int*, const int*, const int*, Complex*,
212 const int*, Complex*, Complex*, const int*,
213 int*, long, long);
214
215 int F77_FCN (zunghr) (const int*, const int*, const int*, Complex*,
216 const int*, Complex*, Complex*, const int*,
217 int*, long, long);
218
219 int F77_FCN (zungqr) (const int*, const int*, const int*, Complex*,
220 const int*, Complex*, Complex*, const int*, int*);
221
222 int F77_FCN (zgedi) (Complex*, const int*, const int*, int*,
223 Complex*, Complex*, const int*);
224
225 int F77_FCN (zgesl) (Complex*, const int*, const int*, int*,
226 Complex*, const int*);
227
228 int F77_FCN (zgeev) (const char*, const char*, const int*, Complex*,
229 const int*, Complex*, Complex*, const int*,
230 Complex*, const int*, Complex*, const int*,
231 double*, int*, long, long);
232
233 int F77_FCN (zgesvd) (const char*, const char*, const int*,
234 const int*, Complex*, const int*, double*,
235 Complex*, const int*, Complex*, const int*,
236 Complex*, const int*, double*, int*, long, long);
237
238 int F77_FCN (zgelss) (const int*, const int*, const int*, Complex*,
239 const int*, Complex*, const int*, double*,
240 const double*, int*, Complex*, const int*,
241 double*, int*);
242
243 int F77_FCN (zpotrf) (const char*, const int*, Complex*, const int*,
244 int*, long);
245
246
247 // Note that the original complex fft routines were not written for
248 // double complex arguments. They have been modified by adding an
249 // implicit double precision (a-h,o-z) statement at the beginning of
250 // each subroutine.
251
252 int F77_FCN (cffti) (const int*, Complex*);
253
254 int F77_FCN (cfftf) (const int*, Complex*, Complex*);
255
256 int F77_FCN (cfftb) (const int*, Complex*, Complex*);
257
258 }
259 58
260 // Classes we declare. 59 // Classes we declare.
261 60
262 class Matrix; 61 class Matrix;
263 class ColumnVector; 62 class ColumnVector;