Rename *ll* and *ul* to ll and ul in $defint
[maxima.git] / share / fftpack5 / lisp / sintb1.lisp
blob23a46e82e45cc429f7b6abfcca3a4e0df5384286
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)
11 ;;;
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 sintb1 (n inc x wsave xh work ier)
21 (declare (type (double-float) work)
22 (type (array double-float (*)) xh wsave x)
23 (type (f2cl-lib:integer4) ier inc n))
24 (f2cl-lib:with-multi-array-data
25 ((x double-float x-%data% x-%offset%)
26 (wsave double-float wsave-%data% wsave-%offset%)
27 (xh double-float xh-%data% xh-%offset%))
28 (prog ((dsum 0.0d0) (i 0) (fnp1s4 0.0d0) (ier1 0) (lnwk 0) (lnsv 0)
29 (lnxh 0) (modn 0) (t2 0.0d0) (t1 0.0d0) (kc 0) (k 0) (ns2 0) (np1 0)
30 (xhold 0.0d0) (srt3s2 0.0d0))
31 (declare (type (f2cl-lib:integer4) np1 ns2 k kc modn lnxh lnsv lnwk ier1
33 (type (double-float) srt3s2 xhold t1 t2 fnp1s4 dsum))
34 (setf ier 0)
35 (f2cl-lib:arithmetic-if (f2cl-lib:int-sub n 2)
36 (go label200)
37 (go label102)
38 (go label103))
39 label102
40 (setf srt3s2 (/ (f2cl-lib:fsqrt 3.0d0) 2.0d0))
41 (setf xhold
42 (* srt3s2
43 (+ (f2cl-lib:fref x-%data% (1 1) ((1 inc) (1 *)) x-%offset%)
44 (f2cl-lib:fref x-%data%
45 (1 2)
46 ((1 inc) (1 *))
47 x-%offset%))))
48 (setf (f2cl-lib:fref x-%data% (1 2) ((1 inc) (1 *)) x-%offset%)
49 (* srt3s2
50 (- (f2cl-lib:fref x-%data% (1 1) ((1 inc) (1 *)) x-%offset%)
51 (f2cl-lib:fref x-%data%
52 (1 2)
53 ((1 inc) (1 *))
54 x-%offset%))))
55 (setf (f2cl-lib:fref x-%data% (1 1) ((1 inc) (1 *)) x-%offset%) xhold)
56 (go label200)
57 label103
58 (setf np1 (f2cl-lib:int-add n 1))
59 (setf ns2 (the f2cl-lib:integer4 (truncate n 2)))
60 (f2cl-lib:fdo (k 1 (f2cl-lib:int-add k 1))
61 ((> k ns2) nil)
62 (tagbody
63 (setf kc (f2cl-lib:int-sub np1 k))
64 (setf t1
65 (- (f2cl-lib:fref x-%data% (1 k) ((1 inc) (1 *)) x-%offset%)
66 (f2cl-lib:fref x-%data%
67 (1 kc)
68 ((1 inc) (1 *))
69 x-%offset%)))
70 (setf t2
71 (* (f2cl-lib:fref wsave-%data% (k) ((1 *)) wsave-%offset%)
73 (f2cl-lib:fref x-%data% (1 k) ((1 inc) (1 *)) x-%offset%)
74 (f2cl-lib:fref x-%data%
75 (1 kc)
76 ((1 inc) (1 *))
77 x-%offset%))))
78 (setf (f2cl-lib:fref xh-%data%
79 ((f2cl-lib:int-add k 1))
80 ((1 *))
81 xh-%offset%)
82 (+ t1 t2))
83 (setf (f2cl-lib:fref xh-%data%
84 ((f2cl-lib:int-add kc 1))
85 ((1 *))
86 xh-%offset%)
87 (- t2 t1))
88 label104))
89 (setf modn (mod n 2))
90 (if (= modn 0) (go label124))
91 (setf (f2cl-lib:fref xh-%data%
92 ((f2cl-lib:int-add ns2 2))
93 ((1 *))
94 xh-%offset%)
95 (* 4.0d0
96 (f2cl-lib:fref x-%data%
97 (1 (f2cl-lib:int-add ns2 1))
98 ((1 inc) (1 *))
99 x-%offset%)))
100 label124
101 (setf (f2cl-lib:fref xh-%data% (1) ((1 *)) xh-%offset%) 0.0d0)
102 (setf lnxh np1)
103 (setf lnsv
104 (f2cl-lib:int-add np1
105 (f2cl-lib:int
106 (/ (f2cl-lib:flog (f2cl-lib:freal np1))
107 (f2cl-lib:flog 2.0d0)))
109 (setf lnwk np1)
110 (multiple-value-bind
111 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8)
112 (rfft1f np1 1 xh lnxh
113 (f2cl-lib:array-slice wsave-%data%
114 double-float
115 ((+ ns2 1))
116 ((1 *))
117 wsave-%offset%)
118 lnsv
119 (make-array 1 :element-type (type-of work) :initial-element work)
120 lnwk ier1)
121 (declare (ignore var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7))
122 (setf ier1 var-8))
123 (cond
124 ((/= ier1 0)
125 (setf ier 20)
126 (xerfft "SINTB1" -5)
127 (go label200)))
128 (if (/= (mod np1 2) 0) (go label30))
129 (setf (f2cl-lib:fref xh-%data% (np1) ((1 *)) xh-%offset%)
130 (+ (f2cl-lib:fref xh-%data% (np1) ((1 *)) xh-%offset%)
131 (f2cl-lib:fref xh-%data% (np1) ((1 *)) xh-%offset%)))
132 label30
133 (setf fnp1s4 (/ (f2cl-lib:ffloat np1) 4.0d0))
134 (setf (f2cl-lib:fref x-%data% (1 1) ((1 inc) (1 *)) x-%offset%)
135 (* fnp1s4 (f2cl-lib:fref xh-%data% (1) ((1 *)) xh-%offset%)))
136 (setf dsum (f2cl-lib:fref x-%data% (1 1) ((1 inc) (1 *)) x-%offset%))
137 (f2cl-lib:fdo (i 3 (f2cl-lib:int-add i 2))
138 ((> i n) nil)
139 (tagbody
140 (setf (f2cl-lib:fref x-%data%
141 (1 (f2cl-lib:int-sub i 1))
142 ((1 inc) (1 *))
143 x-%offset%)
144 (* fnp1s4 (f2cl-lib:fref xh-%data% (i) ((1 *)) xh-%offset%)))
145 (setf dsum
146 (+ dsum
147 (* fnp1s4
148 (f2cl-lib:fref xh-%data%
149 ((f2cl-lib:int-sub i 1))
150 ((1 *))
151 xh-%offset%))))
152 (setf (f2cl-lib:fref x-%data% (1 i) ((1 inc) (1 *)) x-%offset%) dsum)
153 label105))
154 (if (/= modn 0) (go label200))
155 (setf (f2cl-lib:fref x-%data% (1 n) ((1 inc) (1 *)) x-%offset%)
156 (* fnp1s4
157 (f2cl-lib:fref xh-%data%
158 ((f2cl-lib:int-add n 1))
159 ((1 *))
160 xh-%offset%)))
161 label200
162 (go end_label)
163 end_label
164 (return (values nil nil nil nil nil nil ier)))))
166 (in-package #:cl-user)
167 #+#.(cl:if (cl:find-package '#:f2cl) '(and) '(or))
168 (eval-when (:load-toplevel :compile-toplevel :execute)
169 (setf (gethash 'fortran-to-lisp::sintb1
170 fortran-to-lisp::*f2cl-function-info*)
171 (fortran-to-lisp::make-f2cl-finfo
172 :arg-types '((fortran-to-lisp::integer4) (fortran-to-lisp::integer4)
173 (array double-float (*)) (array double-float (*))
174 (array double-float (*)) (double-float)
175 (fortran-to-lisp::integer4))
176 :return-values '(nil nil nil nil nil nil fortran-to-lisp::ier)
177 :calls '(fortran-to-lisp::xerfft fortran-to-lisp::rfft1f))))