1 ;;; Compiled by f2cl version:
2 ;;; ("f2cl1.l,v 95098eb54f13 2013/04/01 00:45:16 toy $"
3 ;;; "f2cl2.l,v 95098eb54f13 2013/04/01 00:45:16 toy $"
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 95098eb54f13 2013/04/01 00:45:16 toy $"
7 ;;; "f2cl6.l,v 1d5cbacbb977 2008/08/24 00:56:27 rtoy $"
8 ;;; "macros.l,v 1409c1352feb 2013/03/24 20:44:50 toy $")
10 ;;; Using Lisp CMU Common Lisp snapshot-2020-04 (21D 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 single-float))
17 (in-package "FFTPACK5")
20 (defun mrftf1 (m im n in c ch wa fac
)
21 (declare (type (array double-float
(*)) fac
)
22 (type (array double-float
(*)) wa ch c
)
23 (type (f2cl-lib:integer4
) in n im m
))
24 (f2cl-lib:with-multi-array-data
25 ((c double-float c-%data% c-%offset%
)
26 (ch double-float ch-%data% ch-%offset%
)
27 (wa double-float wa-%data% wa-%offset%
)
28 (fac double-float fac-%data% fac-%offset%
))
29 (prog ((j 0) (i 0) (m2 0) (nl 0) (modn 0) (tsnm 0.0d0
) (tsn 0.0d0
)
30 (sn 0.0d0
) (ix4 0) (ix3 0) (ix2 0) (idl1 0) (ido 0) (l1 0) (ip 0)
31 (kh 0) (k1 0) (iw 0) (l2 0) (na 0) (nf 0))
32 (declare (type (double-float) sn tsn tsnm
)
33 (type (f2cl-lib:integer4
) nf na l2 iw k1 kh ip l1 ido idl1 ix2
34 ix3 ix4 modn nl m2 i j
))
37 (f2cl-lib:fref fac-%data%
(2) ((1 15)) fac-%offset%
)))
41 (f2cl-lib:fdo
(k1 1 (f2cl-lib:int-add k1
1))
44 (setf kh
(f2cl-lib:int-sub nf k1
))
47 (f2cl-lib:fref fac-%data%
48 ((f2cl-lib:int-add kh
3))
51 (setf l1
(the f2cl-lib
:integer4
(truncate l2 ip
)))
52 (setf ido
(the f2cl-lib
:integer4
(truncate n l2
)))
53 (setf idl1
(f2cl-lib:int-mul ido l1
))
56 (f2cl-lib:int-mul
(f2cl-lib:int-sub ip
1)
58 (setf na
(f2cl-lib:int-sub
1 na
))
59 (if (/= ip
4) (go label102
))
60 (setf ix2
(f2cl-lib:int-add iw ido
))
61 (setf ix3
(f2cl-lib:int-add ix2 ido
))
62 (if (/= na
0) (go label101
))
63 (mradf4 m ido l1 c im in ch
1 m
64 (f2cl-lib:array-slice wa-%data%
69 (f2cl-lib:array-slice wa-%data%
74 (f2cl-lib:array-slice wa-%data%
81 (mradf4 m ido l1 ch
1 m c im in
82 (f2cl-lib:array-slice wa-%data%
87 (f2cl-lib:array-slice wa-%data%
92 (f2cl-lib:array-slice wa-%data%
99 (if (/= ip
2) (go label104
))
100 (if (/= na
0) (go label103
))
101 (mradf2 m ido l1 c im in ch
1 m
102 (f2cl-lib:array-slice wa-%data%
109 (mradf2 m ido l1 ch
1 m c im in
110 (f2cl-lib:array-slice wa-%data%
117 (if (/= ip
3) (go label106
))
118 (setf ix2
(f2cl-lib:int-add iw ido
))
119 (if (/= na
0) (go label105
))
120 (mradf3 m ido l1 c im in ch
1 m
121 (f2cl-lib:array-slice wa-%data%
126 (f2cl-lib:array-slice wa-%data%
133 (mradf3 m ido l1 ch
1 m c im in
134 (f2cl-lib:array-slice wa-%data%
139 (f2cl-lib:array-slice wa-%data%
146 (if (/= ip
5) (go label108
))
147 (setf ix2
(f2cl-lib:int-add iw ido
))
148 (setf ix3
(f2cl-lib:int-add ix2 ido
))
149 (setf ix4
(f2cl-lib:int-add ix3 ido
))
150 (if (/= na
0) (go label107
))
151 (mradf5 m ido l1 c im in ch
1 m
152 (f2cl-lib:array-slice wa-%data%
157 (f2cl-lib:array-slice wa-%data%
162 (f2cl-lib:array-slice wa-%data%
167 (f2cl-lib:array-slice wa-%data%
174 (mradf5 m ido l1 ch
1 m c im in
175 (f2cl-lib:array-slice wa-%data%
180 (f2cl-lib:array-slice wa-%data%
185 (f2cl-lib:array-slice wa-%data%
190 (f2cl-lib:array-slice wa-%data%
197 (if (= ido
1) (setf na
(f2cl-lib:int-sub
1 na
)))
198 (if (/= na
0) (go label109
))
199 (mradfg m ido ip l1 idl1 c c c im in ch ch
1 m
200 (f2cl-lib:array-slice wa-%data%
208 (mradfg m ido ip l1 idl1 ch ch ch
1 m c c im in
209 (f2cl-lib:array-slice wa-%data%
218 (setf sn
(/ 1.0d0 n
))
219 (setf tsn
(/ 2.0d0 n
))
221 (setf modn
(mod n
2))
222 (setf nl
(f2cl-lib:int-sub n
2))
223 (if (/= modn
0) (setf nl
(f2cl-lib:int-sub n
1)))
224 (if (/= na
0) (go label120
))
225 (setf m2
(f2cl-lib:int-sub
1 im
))
226 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
229 (setf m2
(f2cl-lib:int-add m2 im
))
230 (setf (f2cl-lib:fref c-%data%
(m2 1) ((1 in
) (1 *)) c-%offset%
)
232 (f2cl-lib:fref ch-%data%
237 (f2cl-lib:fdo
(j 2 (f2cl-lib:int-add j
2))
240 (setf m2
(f2cl-lib:int-sub
1 im
))
241 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
244 (setf m2
(f2cl-lib:int-add m2 im
))
245 (setf (f2cl-lib:fref c-%data%
(m2 j
) ((1 in
) (1 *)) c-%offset%
)
247 (f2cl-lib:fref ch-%data%
251 (setf (f2cl-lib:fref c-%data%
252 (m2 (f2cl-lib:int-add j
1))
256 (f2cl-lib:fref ch-%data%
257 (i (f2cl-lib:int-add j
1))
262 (if (/= modn
0) (go end_label
))
263 (setf m2
(f2cl-lib:int-sub
1 im
))
264 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
267 (setf m2
(f2cl-lib:int-add m2 im
))
268 (setf (f2cl-lib:fref c-%data%
(m2 n
) ((1 in
) (1 *)) c-%offset%
)
270 (f2cl-lib:fref ch-%data%
277 (setf m2
(f2cl-lib:int-sub
1 im
))
278 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
281 (setf m2
(f2cl-lib:int-add m2 im
))
282 (setf (f2cl-lib:fref c-%data%
(m2 1) ((1 in
) (1 *)) c-%offset%
)
284 (f2cl-lib:fref c-%data%
289 (f2cl-lib:fdo
(j 2 (f2cl-lib:int-add j
2))
292 (setf m2
(f2cl-lib:int-sub
1 im
))
293 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
296 (setf m2
(f2cl-lib:int-add m2 im
))
297 (setf (f2cl-lib:fref c-%data%
(m2 j
) ((1 in
) (1 *)) c-%offset%
)
299 (f2cl-lib:fref c-%data%
303 (setf (f2cl-lib:fref c-%data%
304 (m2 (f2cl-lib:int-add j
1))
308 (f2cl-lib:fref c-%data%
309 (m2 (f2cl-lib:int-add j
1))
314 (if (/= modn
0) (go end_label
))
315 (setf m2
(f2cl-lib:int-sub
1 im
))
316 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
319 (setf m2
(f2cl-lib:int-add m2 im
))
320 (setf (f2cl-lib:fref c-%data%
(m2 n
) ((1 in
) (1 *)) c-%offset%
)
322 (f2cl-lib:fref c-%data%
329 (return (values nil nil nil nil nil nil nil nil
)))))
331 (in-package #:cl-user
)
332 #+#.
(cl:if
(cl:find-package
'#:f2cl
) '(and) '(or))
333 (eval-when (:load-toplevel
:compile-toplevel
:execute
)
334 (setf (gethash 'fortran-to-lisp
::mrftf1
335 fortran-to-lisp
::*f2cl-function-info
*)
336 (fortran-to-lisp::make-f2cl-finfo
337 :arg-types
'((fortran-to-lisp::integer4
) (fortran-to-lisp::integer4
)
338 (fortran-to-lisp::integer4
) (fortran-to-lisp::integer4
)
339 (array double-float
(*)) (array double-float
(*))
340 (array double-float
(*)) (array double-float
(*)))
341 :return-values
'(nil nil nil nil nil nil nil nil
)
342 :calls
'(fortran-to-lisp::mradfg fortran-to-lisp
::mradf5
343 fortran-to-lisp
::mradf3 fortran-to-lisp
::mradf2
344 fortran-to-lisp
::mradf4
))))