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* ((zero (f2cl-lib:cmplx
0.0 0.0)))
21 (declare (type (f2cl-lib:complex16
) zero
) (ignorable zero
))
22 (defun ztpmv (uplo trans diag n ap x incx
)
23 (declare (type (array f2cl-lib
:complex16
(*)) x ap
)
24 (type (f2cl-lib:integer4
) incx n
)
25 (type (simple-string *) diag trans uplo
))
26 (f2cl-lib:with-multi-array-data
27 ((uplo character uplo-%data% uplo-%offset%
)
28 (trans character trans-%data% trans-%offset%
)
29 (diag character diag-%data% diag-%offset%
)
30 (ap f2cl-lib
:complex16 ap-%data% ap-%offset%
)
31 (x f2cl-lib
:complex16 x-%data% x-%offset%
))
32 (prog ((noconj nil
) (nounit nil
) (i 0) (info 0) (ix 0) (j 0) (jx 0) (k 0)
33 (kk 0) (kx 0) (temp #C
(0.0
0.0)))
34 (declare (type f2cl-lib
:logical noconj nounit
)
35 (type (f2cl-lib:integer4
) i info ix j jx k kk kx
)
36 (type (f2cl-lib:complex16
) temp
))
39 ((and (not (lsame uplo
"U")) (not (lsame uplo
"L")))
41 ((and (not (lsame trans
"N"))
42 (not (lsame trans
"T"))
43 (not (lsame trans
"C")))
45 ((and (not (lsame diag
"U")) (not (lsame diag
"N")))
53 (xerbla "ZTPMV " info
)
55 (if (= n
0) (go end_label
))
56 (setf noconj
(lsame trans
"T"))
57 (setf nounit
(lsame diag
"N"))
62 (f2cl-lib:int-mul
(f2cl-lib:int-sub n
1)
73 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
77 ((/= (f2cl-lib:fref x
(j) ((1 *))) zero
)
79 (f2cl-lib:fref x-%data%
(j) ((1 *)) x-%offset%
))
81 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
88 (setf (f2cl-lib:fref x-%data%
93 (f2cl-lib:fref x-%data%
98 (f2cl-lib:fref ap-%data%
102 (setf k
(f2cl-lib:int-add k
1))
105 (setf (f2cl-lib:fref x-%data%
110 (f2cl-lib:fref x-%data%
114 (f2cl-lib:fref ap-%data%
116 (f2cl-lib:int-add kk j
)
120 (setf kk
(f2cl-lib:int-add kk j
))
124 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
128 ((/= (f2cl-lib:fref x
(jx) ((1 *))) zero
)
130 (f2cl-lib:fref x-%data%
135 (f2cl-lib:fdo
(k kk
(f2cl-lib:int-add k
1))
143 (setf (f2cl-lib:fref x-%data%
148 (f2cl-lib:fref x-%data%
153 (f2cl-lib:fref ap-%data%
157 (setf ix
(f2cl-lib:int-add ix incx
))
160 (setf (f2cl-lib:fref x-%data%
165 (f2cl-lib:fref x-%data%
169 (f2cl-lib:fref ap-%data%
171 (f2cl-lib:int-add kk j
)
175 (setf jx
(f2cl-lib:int-add jx incx
))
176 (setf kk
(f2cl-lib:int-add kk j
))
179 (setf kk
(the f2cl-lib
:integer4
(truncate (* n
(+ n
1)) 2)))
182 (f2cl-lib:fdo
(j n
(f2cl-lib:int-add j
(f2cl-lib:int-sub
1)))
186 ((/= (f2cl-lib:fref x
(j) ((1 *))) zero
)
188 (f2cl-lib:fref x-%data%
(j) ((1 *)) x-%offset%
))
192 (f2cl-lib:int-sub
1)))
193 ((> i
(f2cl-lib:int-add j
1)) nil
)
195 (setf (f2cl-lib:fref x-%data%
200 (f2cl-lib:fref x-%data%
205 (f2cl-lib:fref ap-%data%
209 (setf k
(f2cl-lib:int-sub k
1))
212 (setf (f2cl-lib:fref x-%data%
217 (f2cl-lib:fref x-%data%
221 (f2cl-lib:fref ap-%data%
223 (f2cl-lib:int-sub kk n
)
230 (f2cl-lib:int-sub n j
)
237 (f2cl-lib:int-sub n
1)
240 (f2cl-lib:fdo
(j n
(f2cl-lib:int-add j
(f2cl-lib:int-sub
1)))
244 ((/= (f2cl-lib:fref x
(jx) ((1 *))) zero
)
246 (f2cl-lib:fref x-%data%
253 (f2cl-lib:int-sub
1)))
265 (setf (f2cl-lib:fref x-%data%
270 (f2cl-lib:fref x-%data%
275 (f2cl-lib:fref ap-%data%
279 (setf ix
(f2cl-lib:int-sub ix incx
))
282 (setf (f2cl-lib:fref x-%data%
287 (f2cl-lib:fref x-%data%
291 (f2cl-lib:fref ap-%data%
293 (f2cl-lib:int-sub kk n
)
297 (setf jx
(f2cl-lib:int-sub jx incx
))
301 (f2cl-lib:int-sub n j
)
307 (setf kk
(the f2cl-lib
:integer4
(truncate (* n
(+ n
1)) 2)))
310 (f2cl-lib:fdo
(j n
(f2cl-lib:int-add j
(f2cl-lib:int-sub
1)))
314 (f2cl-lib:fref x-%data%
(j) ((1 *)) x-%offset%
))
315 (setf k
(f2cl-lib:int-sub kk
1))
321 (f2cl-lib:fref ap-%data%
327 (f2cl-lib:int-sub
1))
329 (f2cl-lib:int-sub
1)))
335 (f2cl-lib:fref ap-%data%
339 (f2cl-lib:fref x-%data%
343 (setf k
(f2cl-lib:int-sub k
1))
350 (f2cl-lib:fref ap-%data%
356 (f2cl-lib:int-sub
1))
358 (f2cl-lib:int-sub
1)))
365 (f2cl-lib:fref ap-%data%
369 (f2cl-lib:fref x-%data%
373 (setf k
(f2cl-lib:int-sub k
1))
375 (setf (f2cl-lib:fref x-%data%
(j) ((1 *)) x-%offset%
)
377 (setf kk
(f2cl-lib:int-sub kk j
))
383 (f2cl-lib:int-sub n
1)
385 (f2cl-lib:fdo
(j n
(f2cl-lib:int-add j
(f2cl-lib:int-sub
1)))
389 (f2cl-lib:fref x-%data%
(jx) ((1 *)) x-%offset%
))
396 (f2cl-lib:fref ap-%data%
402 (f2cl-lib:int-sub
1))
404 (f2cl-lib:int-sub
1)))
412 (setf ix
(f2cl-lib:int-sub ix incx
))
416 (f2cl-lib:fref ap-%data%
420 (f2cl-lib:fref x-%data%
430 (f2cl-lib:fref ap-%data%
436 (f2cl-lib:int-sub
1))
438 (f2cl-lib:int-sub
1)))
446 (setf ix
(f2cl-lib:int-sub ix incx
))
451 (f2cl-lib:fref ap-%data%
455 (f2cl-lib:fref x-%data%
460 (setf (f2cl-lib:fref x-%data%
(jx) ((1 *)) x-%offset%
)
462 (setf jx
(f2cl-lib:int-sub jx incx
))
463 (setf kk
(f2cl-lib:int-sub kk j
))
469 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
473 (f2cl-lib:fref x-%data%
(j) ((1 *)) x-%offset%
))
474 (setf k
(f2cl-lib:int-add kk
1))
480 (f2cl-lib:fref ap-%data%
484 (f2cl-lib:fdo
(i (f2cl-lib:int-add j
1)
485 (f2cl-lib:int-add i
1))
491 (f2cl-lib:fref ap-%data%
495 (f2cl-lib:fref x-%data%
499 (setf k
(f2cl-lib:int-add k
1))
506 (f2cl-lib:fref ap-%data%
510 (f2cl-lib:fdo
(i (f2cl-lib:int-add j
1)
511 (f2cl-lib:int-add i
1))
518 (f2cl-lib:fref ap-%data%
522 (f2cl-lib:fref x-%data%
526 (setf k
(f2cl-lib:int-add k
1))
528 (setf (f2cl-lib:fref x-%data%
(j) ((1 *)) x-%offset%
)
533 (f2cl-lib:int-sub n j
)
538 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
542 (f2cl-lib:fref x-%data%
(jx) ((1 *)) x-%offset%
))
549 (f2cl-lib:fref ap-%data%
553 (f2cl-lib:fdo
(k (f2cl-lib:int-add kk
1)
554 (f2cl-lib:int-add k
1))
562 (setf ix
(f2cl-lib:int-add ix incx
))
566 (f2cl-lib:fref ap-%data%
570 (f2cl-lib:fref x-%data%
580 (f2cl-lib:fref ap-%data%
584 (f2cl-lib:fdo
(k (f2cl-lib:int-add kk
1)
585 (f2cl-lib:int-add k
1))
593 (setf ix
(f2cl-lib:int-add ix incx
))
598 (f2cl-lib:fref ap-%data%
602 (f2cl-lib:fref x-%data%
607 (setf (f2cl-lib:fref x-%data%
(jx) ((1 *)) x-%offset%
)
609 (setf jx
(f2cl-lib:int-add jx incx
))
613 (f2cl-lib:int-sub n j
)
618 (return (values nil nil nil nil nil nil nil
))))))
620 (in-package #-gcl
#:cl-user
#+gcl
"CL-USER")
621 #+#.
(cl:if
(cl:find-package
'#:f2cl
) '(and) '(or))
622 (eval-when (:load-toplevel
:compile-toplevel
:execute
)
623 (setf (gethash 'fortran-to-lisp
::ztpmv fortran-to-lisp
::*f2cl-function-info
*)
624 (fortran-to-lisp::make-f2cl-finfo
625 :arg-types
'((simple-string) (simple-string) (simple-string)
626 (fortran-to-lisp::integer4
)
627 (array fortran-to-lisp
::complex16
(*))
628 (array fortran-to-lisp
::complex16
(*))
629 (fortran-to-lisp::integer4
))
630 :return-values
'(nil nil nil nil nil nil nil
)
631 :calls
'(fortran-to-lisp::xerbla fortran-to-lisp
::lsame
))))