1 ;;; Compiled by f2cl version:
2 ;;; ("f2cl1.l,v 2edcbd958861 2012/05/30 03:34:52 toy $"
3 ;;; "f2cl2.l,v 96616d88fb7e 2008/02/22 22:19:34 rtoy $"
4 ;;; "f2cl3.l,v 96616d88fb7e 2008/02/22 22:19:34 rtoy $"
5 ;;; "f2cl4.l,v 96616d88fb7e 2008/02/22 22:19:34 rtoy $"
6 ;;; "f2cl5.l,v 3fe93de3be82 2012/05/06 02:17:14 toy $"
7 ;;; "f2cl6.l,v 1d5cbacbb977 2008/08/24 00:56:27 rtoy $"
8 ;;; "macros.l,v 3fe93de3be82 2012/05/06 02:17:14 toy $")
10 ;;; Using Lisp CMU Common Lisp 20d (20D Unicode)
12 ;;; Options: ((:prune-labels nil) (:auto-save t) (:relaxed-array-decls t)
13 ;;; (:coerce-assigns :as-needed) (:array-type ':array)
14 ;;; (:array-slicing t) (:declare-common nil)
15 ;;; (:float-format double-float))
20 (let* ((one 1.0) (zero 0.0))
21 (declare (type (double-float 1.0 1.0) one
)
22 (type (double-float 0.0 0.0) zero
)
24 (defun dgbmv (trans m n kl ku alpha a lda x incx beta y incy
)
25 (declare (type (array double-float
(*)) y x a
)
26 (type (double-float) beta alpha
)
27 (type (f2cl-lib:integer4
) incy incx lda ku kl n m
)
28 (type (simple-string *) trans
))
29 (f2cl-lib:with-multi-array-data
30 ((trans character trans-%data% trans-%offset%
)
31 (a double-float a-%data% a-%offset%
)
32 (x double-float x-%data% x-%offset%
)
33 (y double-float y-%data% y-%offset%
))
34 (prog ((i 0) (info 0) (ix 0) (iy 0) (j 0) (jx 0) (jy 0) (k 0) (kup1 0)
35 (kx 0) (ky 0) (lenx 0) (leny 0) (temp 0.0))
36 (declare (type (f2cl-lib:integer4
) i info ix iy j jx jy k kup1 kx ky
38 (type (double-float) temp
))
41 ((and (not (lsame trans
"N"))
42 (not (lsame trans
"T"))
43 (not (lsame trans
"C")))
53 ((< lda
(f2cl-lib:int-add kl ku
1))
61 (xerbla "DGBMV " info
)
63 (if (or (= m
0) (= n
0) (and (= alpha zero
) (= beta one
)))
79 (f2cl-lib:int-sub lenx
1)
88 (f2cl-lib:int-sub leny
1)
96 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
99 (setf (f2cl-lib:fref y-%data%
(i) ((1 *)) y-%offset%
)
103 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
106 (setf (f2cl-lib:fref y-%data%
(i) ((1 *)) y-%offset%
)
108 (f2cl-lib:fref y-%data%
117 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
120 (setf (f2cl-lib:fref y-%data%
(iy) ((1 *)) y-%offset%
)
122 (setf iy
(f2cl-lib:int-add iy incy
))
125 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
128 (setf (f2cl-lib:fref y-%data%
(iy) ((1 *)) y-%offset%
)
130 (f2cl-lib:fref y-%data%
134 (setf iy
(f2cl-lib:int-add iy incy
))
136 (if (= alpha zero
) (go end_label
))
137 (setf kup1
(f2cl-lib:int-add ku
1))
143 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
147 ((/= (f2cl-lib:fref x
(jx) ((1 *))) zero
)
150 (f2cl-lib:fref x-%data%
154 (setf k
(f2cl-lib:int-sub kup1 j
))
156 (max (the f2cl-lib
:integer4
1)
157 (the f2cl-lib
:integer4
161 (f2cl-lib:int-add i
1))
163 (min (the f2cl-lib
:integer4 m
)
164 (the f2cl-lib
:integer4
165 (f2cl-lib:int-add j kl
))))
168 (setf (f2cl-lib:fref y-%data%
(i) ((1 *)) y-%offset%
)
170 (f2cl-lib:fref y-%data%
175 (f2cl-lib:fref a-%data%
176 ((f2cl-lib:int-add k i
) j
)
180 (setf jx
(f2cl-lib:int-add jx incx
))
183 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
187 ((/= (f2cl-lib:fref x
(jx) ((1 *))) zero
)
190 (f2cl-lib:fref x-%data%
195 (setf k
(f2cl-lib:int-sub kup1 j
))
197 (max (the f2cl-lib
:integer4
1)
198 (the f2cl-lib
:integer4
202 (f2cl-lib:int-add i
1))
204 (min (the f2cl-lib
:integer4 m
)
205 (the f2cl-lib
:integer4
206 (f2cl-lib:int-add j kl
))))
209 (setf (f2cl-lib:fref y-%data%
(iy) ((1 *)) y-%offset%
)
211 (f2cl-lib:fref y-%data%
216 (f2cl-lib:fref a-%data%
217 ((f2cl-lib:int-add k i
) j
)
220 (setf iy
(f2cl-lib:int-add iy incy
))
222 (setf jx
(f2cl-lib:int-add jx incx
))
223 (if (> j ku
) (setf ky
(f2cl-lib:int-add ky incy
)))
229 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
233 (setf k
(f2cl-lib:int-sub kup1 j
))
235 (max (the f2cl-lib
:integer4
1)
236 (the f2cl-lib
:integer4
240 (f2cl-lib:int-add i
1))
242 (min (the f2cl-lib
:integer4 m
)
243 (the f2cl-lib
:integer4
244 (f2cl-lib:int-add j kl
))))
250 (f2cl-lib:fref a-%data%
251 ((f2cl-lib:int-add k i
) j
)
254 (f2cl-lib:fref x-%data%
259 (setf (f2cl-lib:fref y-%data%
(jy) ((1 *)) y-%offset%
)
260 (+ (f2cl-lib:fref y-%data%
(jy) ((1 *)) y-%offset%
)
262 (setf jy
(f2cl-lib:int-add jy incy
))
265 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
270 (setf k
(f2cl-lib:int-sub kup1 j
))
272 (max (the f2cl-lib
:integer4
1)
273 (the f2cl-lib
:integer4
277 (f2cl-lib:int-add i
1))
279 (min (the f2cl-lib
:integer4 m
)
280 (the f2cl-lib
:integer4
281 (f2cl-lib:int-add j kl
))))
287 (f2cl-lib:fref a-%data%
288 ((f2cl-lib:int-add k i
) j
)
291 (f2cl-lib:fref x-%data%
295 (setf ix
(f2cl-lib:int-add ix incx
))
297 (setf (f2cl-lib:fref y-%data%
(jy) ((1 *)) y-%offset%
)
298 (+ (f2cl-lib:fref y-%data%
(jy) ((1 *)) y-%offset%
)
300 (setf jy
(f2cl-lib:int-add jy incy
))
301 (if (> j ku
) (setf kx
(f2cl-lib:int-add kx incx
)))
306 (values nil nil nil nil nil nil nil nil nil nil nil nil nil
))))))
308 (in-package #-gcl
#:cl-user
#+gcl
"CL-USER")
309 #+#.
(cl:if
(cl:find-package
'#:f2cl
) '(and) '(or))
310 (eval-when (:load-toplevel
:compile-toplevel
:execute
)
311 (setf (gethash 'fortran-to-lisp
::dgbmv fortran-to-lisp
::*f2cl-function-info
*)
312 (fortran-to-lisp::make-f2cl-finfo
313 :arg-types
'((simple-string) (fortran-to-lisp::integer4
)
314 (fortran-to-lisp::integer4
) (fortran-to-lisp::integer4
)
315 (fortran-to-lisp::integer4
) (double-float)
316 (array double-float
(*)) (fortran-to-lisp::integer4
)
317 (array double-float
(*)) (fortran-to-lisp::integer4
)
318 (double-float) (array double-float
(*))
319 (fortran-to-lisp::integer4
))
320 :return-values
'(nil nil nil nil nil nil nil nil nil nil nil nil
322 :calls
'(fortran-to-lisp::xerbla fortran-to-lisp
::lsame
))))