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 double-float))
17 (in-package "HOMPACK")
22 :element-type
'double-float
23 :initial-contents
'(2.0
4.0 8.0 16.0 32.0 64.0 128.0 256.0
24 512.0 1024.0 2048.0 4096.0 8192.0)))
27 :element-type
'double-float
28 :initial-contents
'(0.5
0.0833 0.0417 0.0264 0.0188 0.0143
29 0.0114 0.00936 0.00789 0.00679 0.00592
31 (psi (make-array 12 :element-type
'double-float
))
32 (beta (make-array 12 :element-type
'double-float
))
33 (sig (make-array 13 :element-type
'double-float
))
34 (v (make-array 12 :element-type
'double-float
))
80 (declare (type f2cl-lib
:logical phase1 nornd
)
81 (type (f2cl-lib:integer4
) i ifail im1 ip1 iq j jv km1 km2 knew kp1
82 kp2 kprev l limit1 limit2 ns nsm2 nsp1
84 (type (double-float) absh erk erkm1 erkm2 erkp1 err fouru hnew p5eps
85 r reali realns rho round$ sum tau temp1 temp2
86 temp3 temp4 temp5 temp6 twou
)
87 (type (array double-float
(12)) psi beta v
)
88 (type (array double-float
(13)) two gstr sig
))
90 (f neqn y x h eps wt start hold k kold crash phi p yp alpha w g ksteps
91 xold ivc iv kgi gi fpwa1 fpwa2 fpwa3 ifpc1 ifpwa1 fpwa4 fpwa5 ifpc2
93 (declare (type (array f2cl-lib
:integer4
(*)) ipar
)
94 (type (array double-float
(*)) par
)
95 (type (array f2cl-lib
:integer4
(*)) ifpwa1
)
96 (type (array double-float
(*)) gi
)
97 (type (array f2cl-lib
:integer4
(*)) iv
)
98 (type (array double-float
(*)) g
)
99 (type (array double-float
(*)) w alpha
)
100 (type f2cl-lib
:logical crash start
)
101 (type (double-float) xold hold eps h x
)
102 (type (array double-float
(*)) fpwa5 fpwa4 fpwa3 fpwa2 fpwa1 yp p
104 (type (f2cl-lib:integer4
) ifpc3 ifpc2 ifpc1 kgi ivc ksteps kold k
106 (f2cl-lib:with-multi-array-data
107 ((y double-float y-%data% y-%offset%
)
108 (wt double-float wt-%data% wt-%offset%
)
109 (phi double-float phi-%data% phi-%offset%
)
110 (p double-float p-%data% p-%offset%
)
111 (yp double-float yp-%data% yp-%offset%
)
112 (fpwa1 double-float fpwa1-%data% fpwa1-%offset%
)
113 (fpwa2 double-float fpwa2-%data% fpwa2-%offset%
)
114 (fpwa3 double-float fpwa3-%data% fpwa3-%offset%
)
115 (fpwa4 double-float fpwa4-%data% fpwa4-%offset%
)
116 (fpwa5 double-float fpwa5-%data% fpwa5-%offset%
)
117 (alpha double-float alpha-%data% alpha-%offset%
)
118 (w double-float w-%data% w-%offset%
)
119 (g double-float g-%data% g-%offset%
)
120 (iv f2cl-lib
:integer4 iv-%data% iv-%offset%
)
121 (gi double-float gi-%data% gi-%offset%
)
122 (ifpwa1 f2cl-lib
:integer4 ifpwa1-%data% ifpwa1-%offset%
)
123 (par double-float par-%data% par-%offset%
)
124 (ipar f2cl-lib
:integer4 ipar-%data% ipar-%offset%
))
127 (setf twou
(* 2.0f0
(f2cl-lib:d1mach
4)))
128 (setf fouru
(+ twou twou
))
129 (setf crash f2cl-lib
:%true%
)
130 (if (>= (abs h
) (* fouru
(abs x
))) (go label5
))
131 (setf h
(f2cl-lib:sign
(* fouru
(abs x
)) h
))
134 (setf p5eps
(* 0.5f0 eps
))
135 (setf round$
(coerce 0.0f0
'double-float
))
136 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
143 (/ (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
144 (f2cl-lib:fref wt-%data%
149 (setf round$
(* twou
(f2cl-lib:fsqrt round$
)))
150 (if (>= p5eps round$
) (go label15
))
151 (setf eps
(* 2.0f0 round$
(+ 1.0f0 fouru
)))
154 (setf crash f2cl-lib
:%false%
)
155 (setf (f2cl-lib:fref g-%data%
(1) ((1 13)) g-%offset%
)
156 (coerce 1.0f0
'double-float
))
157 (setf (f2cl-lib:fref g-%data%
(2) ((1 13)) g-%offset%
)
158 (coerce 0.5f0
'double-float
))
159 (setf (f2cl-lib:fref sig
(1) ((1 13))) (coerce 1.0f0
'double-float
))
160 (if (not start
) (go label99
))
162 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
163 var-10 var-11 var-12 var-13 var-14
)
176 (f2cl-lib:int-sub neqn
1)
180 (declare (ignore var-1 var-2 var-3 var-4 var-5 var-7 var-8 var-9
181 var-11 var-13 var-14
))
189 (setf ifpc3 var-12
)))
190 (if (> ifpc3
0) (go end_label
))
191 (setf sum
(coerce 0.0f0
'double-float
))
192 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
195 (setf (f2cl-lib:fref phi-%data%
199 (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
))
200 (setf (f2cl-lib:fref phi-%data%
204 (coerce 0.0f0
'double-float
))
209 (/ (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
210 (f2cl-lib:fref wt-%data%
215 (setf sum
(f2cl-lib:fsqrt sum
))
217 (if (< eps
(* 16.0f0 sum h h
))
218 (setf absh
(* 0.25f0
(f2cl-lib:fsqrt
(/ eps sum
)))))
219 (setf h
(f2cl-lib:sign
(max absh
(* fouru
(abs x
))) h
))
220 (setf hold
(coerce 0.0f0
'double-float
))
224 (setf start f2cl-lib
:%false%
)
225 (setf phase1 f2cl-lib
:%true%
)
226 (setf nornd f2cl-lib
:%true%
)
227 (if (> p5eps
(* 100.0f0 round$
)) (go label99
))
228 (setf nornd f2cl-lib
:%false%
)
229 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
233 (setf (f2cl-lib:fref phi-%data%
237 (coerce 0.0f0
'double-float
))))
241 (setf kp1
(f2cl-lib:int-add k
1))
242 (setf kp2
(f2cl-lib:int-add k
2))
243 (setf km1
(f2cl-lib:int-sub k
1))
244 (setf km2
(f2cl-lib:int-sub k
2))
245 (if (/= h hold
) (setf ns
0))
246 (if (<= ns kold
) (setf ns
(f2cl-lib:int-add ns
1)))
247 (setf nsp1
(f2cl-lib:int-add ns
1))
248 (if (< k ns
) (go label199
))
249 (setf (f2cl-lib:fref beta
(ns) ((1 12))) (coerce 1.0f0
'double-float
))
250 (setf realns
(coerce (the f2cl-lib
:integer4 ns
) 'double-float
))
251 (setf (f2cl-lib:fref alpha-%data%
(ns) ((1 12)) alpha-%offset%
)
253 (setf temp1
(* h realns
))
254 (setf (f2cl-lib:fref sig
(nsp1) ((1 13))) (coerce 1.0f0
'double-float
))
255 (if (< k nsp1
) (go label110
))
256 (f2cl-lib:fdo
(i nsp1
(f2cl-lib:int-add i
1))
259 (setf im1
(f2cl-lib:int-sub i
1))
260 (setf temp2
(f2cl-lib:fref psi
(im1) ((1 12))))
261 (setf (f2cl-lib:fref psi
(im1) ((1 12))) temp1
)
262 (setf (f2cl-lib:fref beta
(i) ((1 12)))
264 (* (f2cl-lib:fref beta
(im1) ((1 12)))
265 (f2cl-lib:fref psi
(im1) ((1 12))))
267 (setf temp1
(+ temp2 h
))
268 (setf (f2cl-lib:fref alpha-%data%
(i) ((1 12)) alpha-%offset%
)
270 (setf reali
(coerce (the f2cl-lib
:integer4 i
) 'double-float
))
272 (setf (f2cl-lib:fref sig
((f2cl-lib:int-add i
1)) ((1 13)))
274 (f2cl-lib:fref alpha-%data%
(i) ((1 12)) alpha-%offset%
)
275 (f2cl-lib:fref sig
(i) ((1 13)))))))
277 (setf (f2cl-lib:fref psi
(k) ((1 12))) temp1
)
278 (if (> ns
1) (go label120
))
279 (f2cl-lib:fdo
(iq 1 (f2cl-lib:int-add iq
1))
284 (the f2cl-lib
:integer4
285 (f2cl-lib:int-mul iq
(f2cl-lib:int-add iq
1)))
287 (setf (f2cl-lib:fref v
(iq) ((1 12))) (/ 1.0f0 temp3
))
289 (setf (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
290 (f2cl-lib:fref v
(iq) ((1 12))))))
293 (if (= k
1) (go label140
))
295 (setf (f2cl-lib:fref gi-%data%
(1) ((1 11)) gi-%offset%
)
296 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
299 (if (<= k kprev
) (go label130
))
300 (if (= ivc
0) (go label122
))
302 (f2cl-lib:int-sub kp1
303 (f2cl-lib:fref iv-%data%
307 (setf ivc
(f2cl-lib:int-sub ivc
1))
312 (coerce (the f2cl-lib
:integer4
(f2cl-lib:int-mul k kp1
))
314 (setf (f2cl-lib:fref v
(k) ((1 12))) (/ 1.0f0 temp4
))
315 (setf (f2cl-lib:fref w-%data%
(k) ((1 12)) w-%offset%
)
316 (f2cl-lib:fref v
(k) ((1 12))))
317 (if (/= k
2) (go label123
))
319 (setf (f2cl-lib:fref gi-%data%
(1) ((1 11)) gi-%offset%
)
320 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
322 (setf nsm2
(f2cl-lib:int-sub ns
2))
323 (if (< nsm2 jv
) (go label130
))
324 (f2cl-lib:fdo
(j jv
(f2cl-lib:int-add j
1))
327 (setf i
(f2cl-lib:int-sub k j
))
328 (setf (f2cl-lib:fref v
(i) ((1 12)))
329 (- (f2cl-lib:fref v
(i) ((1 12)))
331 (f2cl-lib:fref alpha-%data%
332 ((f2cl-lib:int-add j
1))
335 (f2cl-lib:fref v
((f2cl-lib:int-add i
1)) ((1 12))))))
337 (setf (f2cl-lib:fref w-%data%
(i) ((1 12)) w-%offset%
)
338 (f2cl-lib:fref v
(i) ((1 12))))))
339 (if (/= i
2) (go label130
))
340 (setf kgi
(f2cl-lib:int-sub ns
1))
341 (setf (f2cl-lib:fref gi-%data%
(kgi) ((1 11)) gi-%offset%
)
342 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
344 (setf limit1
(f2cl-lib:int-sub kp1 ns
))
345 (setf temp5
(f2cl-lib:fref alpha-%data%
(ns) ((1 12)) alpha-%offset%
))
346 (f2cl-lib:fdo
(iq 1 (f2cl-lib:int-add iq
1))
349 (setf (f2cl-lib:fref v
(iq) ((1 12)))
350 (- (f2cl-lib:fref v
(iq) ((1 12)))
353 ((f2cl-lib:int-add iq
1))
356 (setf (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
357 (f2cl-lib:fref v
(iq) ((1 12))))))
358 (setf (f2cl-lib:fref g-%data%
(nsp1) ((1 13)) g-%offset%
)
359 (f2cl-lib:fref w-%data%
(1) ((1 12)) w-%offset%
))
360 (if (= limit1
1) (go label137
))
362 (setf (f2cl-lib:fref gi-%data%
(kgi) ((1 11)) gi-%offset%
)
363 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
365 (setf (f2cl-lib:fref w-%data%
366 ((f2cl-lib:int-add limit1
1))
369 (f2cl-lib:fref v
((f2cl-lib:int-add limit1
1)) ((1 12))))
370 (if (>= k kold
) (go label140
))
371 (setf ivc
(f2cl-lib:int-add ivc
1))
372 (setf (f2cl-lib:fref iv-%data%
(ivc) ((1 10)) iv-%offset%
)
373 (f2cl-lib:int-add limit1
2))
375 (setf nsp2
(f2cl-lib:int-add ns
2))
377 (if (< kp1 nsp2
) (go label199
))
378 (f2cl-lib:fdo
(i nsp2
(f2cl-lib:int-add i
1))
381 (setf limit2
(f2cl-lib:int-sub kp2 i
))
383 (f2cl-lib:fref alpha-%data%
384 ((f2cl-lib:int-sub i
1))
387 (f2cl-lib:fdo
(iq 1 (f2cl-lib:int-add iq
1))
391 (setf (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
392 (- (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
394 (f2cl-lib:fref w-%data%
395 ((f2cl-lib:int-add iq
1))
399 (setf (f2cl-lib:fref g-%data%
(i) ((1 13)) g-%offset%
)
400 (f2cl-lib:fref w-%data%
(1) ((1 12)) w-%offset%
))))
402 (setf ksteps
(f2cl-lib:int-add ksteps
1))
403 (if (< k nsp1
) (go label215
))
404 (f2cl-lib:fdo
(i nsp1
(f2cl-lib:int-add i
1))
407 (setf temp1
(f2cl-lib:fref beta
(i) ((1 12))))
408 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
412 (setf (f2cl-lib:fref phi-%data%
417 (f2cl-lib:fref phi-%data%
423 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
426 (setf (f2cl-lib:fref phi-%data%
430 (f2cl-lib:fref phi-%data%
434 (setf (f2cl-lib:fref phi-%data%
438 (coerce 0.0f0
'double-float
))
440 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
441 (coerce 0.0f0
'double-float
))))
442 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
445 (setf i
(f2cl-lib:int-sub kp1 j
))
446 (setf ip1
(f2cl-lib:int-add i
1))
447 (setf temp2
(f2cl-lib:fref g-%data%
(i) ((1 13)) g-%offset%
))
448 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
451 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
452 (+ (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
454 (f2cl-lib:fref phi-%data%
459 (setf (f2cl-lib:fref phi-%data%
464 (f2cl-lib:fref phi-%data%
468 (f2cl-lib:fref phi-%data%
473 (if nornd
(go label240
))
474 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
478 (- (* h
(f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
))
479 (f2cl-lib:fref phi-%data%
483 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
484 (+ (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
) tau
))
486 (setf (f2cl-lib:fref phi-%data%
490 (- (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
491 (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
495 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
499 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
500 (+ (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
502 (f2cl-lib:fref p-%data%
511 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
512 var-10 var-11 var-12 var-13 var-14
)
525 (f2cl-lib:int-sub neqn
1)
529 (declare (ignore var-1 var-2 var-3 var-4 var-5 var-7 var-8 var-9
530 var-11 var-13 var-14
))
538 (setf ifpc3 var-12
)))
539 (if (> ifpc3
0) (go end_label
))
540 (setf erkm2
(coerce 0.0f0
'double-float
))
541 (setf erkm1
(coerce 0.0f0
'double-float
))
542 (setf erk
(coerce 0.0f0
'double-float
))
543 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
548 (f2cl-lib:fref wt-%data%
(l) ((1 neqn
)) wt-%offset%
)))
550 (- (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
551 (f2cl-lib:fref phi-%data%
555 (f2cl-lib:arithmetic-if km2
565 (f2cl-lib:fref phi-%data%
578 (f2cl-lib:fref phi-%data%
586 (setf erk
(+ erk
(expt (* temp4 temp3
) 2)))))
587 (f2cl-lib:arithmetic-if km2
(go label280
) (go label275
) (go label270
))
591 (f2cl-lib:fref sig
(km1) ((1 13)))
592 (f2cl-lib:fref gstr
(km2) ((1 13)))
593 (f2cl-lib:fsqrt erkm2
)))
597 (f2cl-lib:fref sig
(k) ((1 13)))
598 (f2cl-lib:fref gstr
(km1) ((1 13)))
599 (f2cl-lib:fsqrt erkm1
)))
601 (setf temp5
(* absh
(f2cl-lib:fsqrt erk
)))
604 (- (f2cl-lib:fref g-%data%
(k) ((1 13)) g-%offset%
)
605 (f2cl-lib:fref g-%data%
(kp1) ((1 13)) g-%offset%
))))
608 (f2cl-lib:fref sig
(kp1) ((1 13)))
609 (f2cl-lib:fref gstr
(k) ((1 13)))))
611 (f2cl-lib:arithmetic-if km2
(go label299
) (go label290
) (go label285
))
613 (if (<= (max erkm1 erkm2
) erk
) (setf knew km1
))
616 (if (<= erkm1
(* 0.5f0 erk
)) (setf knew km1
))
618 (if (<= err eps
) (go label400
))
619 (setf phase1 f2cl-lib
:%false%
)
621 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
624 (setf temp1
(/ 1.0f0
(f2cl-lib:fref beta
(i) ((1 12)))))
625 (setf ip1
(f2cl-lib:int-add i
1))
626 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
630 (setf (f2cl-lib:fref phi-%data%
636 (f2cl-lib:fref phi-%data%
640 (f2cl-lib:fref phi-%data%
645 (if (< k
2) (go label320
))
646 (f2cl-lib:fdo
(i 2 (f2cl-lib:int-add i
1))
650 (setf (f2cl-lib:fref psi
((f2cl-lib:int-sub i
1)) ((1 12)))
651 (- (f2cl-lib:fref psi
(i) ((1 12))) h
))))
653 (setf ifail
(f2cl-lib:int-add ifail
1))
654 (setf temp2
(coerce 0.5f0
'double-float
))
655 (f2cl-lib:arithmetic-if
(f2cl-lib:int-sub ifail
3)
660 (if (< p5eps
(* 0.25f0 erk
))
661 (setf temp2
(f2cl-lib:fsqrt
(/ p5eps erk
))))
668 (if (>= (abs h
) (* fouru
(abs x
))) (go label340
))
669 (setf crash f2cl-lib
:%true%
)
670 (setf h
(f2cl-lib:sign
(* fouru
(abs x
)) h
))
671 (setf eps
(+ eps eps
))
678 (setf temp1
(* h
(f2cl-lib:fref g-%data%
(kp1) ((1 13)) g-%offset%
)))
679 (if nornd
(go label410
))
680 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
683 (setf temp3
(f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
))
687 (- (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
688 (f2cl-lib:fref phi-%data%
692 (f2cl-lib:fref phi-%data%
696 (setf (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
697 (+ (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
) rho
))
698 (setf (f2cl-lib:fref phi-%data%
702 (- (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
703 (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
706 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
) temp3
)))
709 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
712 (setf temp3
(f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
))
713 (setf (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
714 (+ (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
717 (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
718 (f2cl-lib:fref phi-%data%
723 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
) temp3
)))
726 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
727 var-10 var-11 var-12 var-13 var-14
)
740 (f2cl-lib:int-sub neqn
1)
744 (declare (ignore var-1 var-2 var-3 var-4 var-5 var-7 var-8 var-9
745 var-11 var-13 var-14
))
753 (setf ifpc3 var-12
)))
754 (if (> ifpc3
0) (go end_label
))
755 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
758 (setf (f2cl-lib:fref phi-%data%
762 (- (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
763 (f2cl-lib:fref phi-%data%
768 (setf (f2cl-lib:fref phi-%data%
773 (f2cl-lib:fref phi-%data%
777 (f2cl-lib:fref phi-%data%
781 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
784 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
788 (setf (f2cl-lib:fref phi-%data%
793 (f2cl-lib:fref phi-%data%
797 (f2cl-lib:fref phi-%data%
802 (setf erkp1
(coerce 0.0f0
'double-float
))
803 (if (or (= knew km1
) (= k
12)) (setf phase1 f2cl-lib
:%false%
))
804 (if phase1
(go label450
))
805 (if (= knew km1
) (go label455
))
806 (if (> kp1 ns
) (go label460
))
807 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
815 (f2cl-lib:fref phi-%data%
819 (f2cl-lib:fref wt-%data%
(l) ((1 neqn
)) wt-%offset%
))
823 (f2cl-lib:fref gstr
(kp1) ((1 13)))
824 (f2cl-lib:fsqrt erkp1
)))
825 (if (> k
1) (go label445
))
826 (if (>= erkp1
(* 0.5f0 erk
)) (go label460
))
829 (if (<= erkm1
(min erk erkp1
)) (go label455
))
830 (if (or (>= erkp1 erk
) (= k
12)) (go label460
))
840 (if phase1
(go label465
))
843 (* erk
(f2cl-lib:fref two
((f2cl-lib:int-add k
1)) ((1 13)))))
846 (if (>= p5eps erk
) (go label465
))
848 (coerce (the f2cl-lib
:integer4
(f2cl-lib:int-add k
1))
850 (setf r
(expt (/ p5eps erk
) (/ 1.0f0 temp2
)))
851 (setf hnew
(* absh
(max 0.5 (min 0.9 r
))))
852 (setf hnew
(f2cl-lib:sign
(max hnew
(* fouru
(abs x
))) h
))
894 (in-package #:cl-user
)
895 #+#.
(cl:if
(cl:find-package
'#:f2cl
) '(and) '(or))
896 (eval-when (:load-toplevel
:compile-toplevel
:execute
)
897 (setf (gethash 'fortran-to-lisp
::stepds
898 fortran-to-lisp
::*f2cl-function-info
*)
899 (fortran-to-lisp::make-f2cl-finfo
900 :arg-types
'(t (fortran-to-lisp::integer4
) (array double-float
(*))
901 (double-float) (double-float) (double-float)
902 (array double-float
(*)) fortran-to-lisp
::logical
903 (double-float) (fortran-to-lisp::integer4
)
904 (fortran-to-lisp::integer4
) fortran-to-lisp
::logical
905 (array double-float
(*)) (array double-float
(*))
906 (array double-float
(*)) (array double-float
(*))
907 (array double-float
(*)) (array double-float
(*))
908 (fortran-to-lisp::integer4
) (double-float)
909 (fortran-to-lisp::integer4
)
910 (array fortran-to-lisp
::integer4
(*))
911 (fortran-to-lisp::integer4
) (array double-float
(*))
912 (array double-float
(*)) (array double-float
(*))
913 (array double-float
(*)) (fortran-to-lisp::integer4
)
914 (array fortran-to-lisp
::integer4
(*))
915 (array double-float
(*)) (array double-float
(*))
916 (fortran-to-lisp::integer4
) (fortran-to-lisp::integer4
)
917 (array double-float
(*))
918 (array fortran-to-lisp
::integer4
(*)))
919 :return-values
'(nil nil nil fortran-to-lisp
::x fortran-to-lisp
::h
920 fortran-to-lisp
::eps nil fortran-to-lisp
::start
921 fortran-to-lisp
::hold fortran-to-lisp
::k
922 fortran-to-lisp
::kold fortran-to-lisp
::crash nil
923 nil nil nil nil nil fortran-to-lisp
::ksteps
924 fortran-to-lisp
::xold fortran-to-lisp
::ivc nil
925 fortran-to-lisp
::kgi nil nil nil nil
926 fortran-to-lisp
::ifpc1 nil nil nil
927 fortran-to-lisp
::ifpc2 fortran-to-lisp
::ifpc3 nil
929 :calls
'(fortran-to-lisp::d1mach
))))