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 fpwa4 fpwa5 ifpwa1 ifpc1 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
) ifpc2 ifpc1 kgi ivc ksteps kold k neqn
))
105 (f2cl-lib:with-multi-array-data
106 ((y double-float y-%data% y-%offset%
)
107 (wt double-float wt-%data% wt-%offset%
)
108 (phi double-float phi-%data% phi-%offset%
)
109 (p double-float p-%data% p-%offset%
)
110 (yp double-float yp-%data% yp-%offset%
)
111 (fpwa1 double-float fpwa1-%data% fpwa1-%offset%
)
112 (fpwa2 double-float fpwa2-%data% fpwa2-%offset%
)
113 (fpwa3 double-float fpwa3-%data% fpwa3-%offset%
)
114 (fpwa4 double-float fpwa4-%data% fpwa4-%offset%
)
115 (fpwa5 double-float fpwa5-%data% fpwa5-%offset%
)
116 (alpha double-float alpha-%data% alpha-%offset%
)
117 (w double-float w-%data% w-%offset%
)
118 (g double-float g-%data% g-%offset%
)
119 (iv f2cl-lib
:integer4 iv-%data% iv-%offset%
)
120 (gi double-float gi-%data% gi-%offset%
)
121 (ifpwa1 f2cl-lib
:integer4 ifpwa1-%data% ifpwa1-%offset%
)
122 (par double-float par-%data% par-%offset%
)
123 (ipar f2cl-lib
:integer4 ipar-%data% ipar-%offset%
))
126 (setf twou
(* 2.0f0
(f2cl-lib:d1mach
4)))
127 (setf fouru
(+ twou twou
))
128 (setf crash f2cl-lib
:%true%
)
129 (if (>= (abs h
) (* fouru
(abs x
))) (go label5
))
130 (setf h
(f2cl-lib:sign
(* fouru
(abs x
)) h
))
133 (setf p5eps
(* 0.5f0 eps
))
134 (setf round$
(coerce 0.0f0
'double-float
))
135 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
142 (/ (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
143 (f2cl-lib:fref wt-%data%
148 (setf round$
(* twou
(f2cl-lib:fsqrt round$
)))
149 (if (>= p5eps round$
) (go label15
))
150 (setf eps
(* 2.0f0 round$
(+ 1.0f0 fouru
)))
153 (setf crash f2cl-lib
:%false%
)
154 (setf (f2cl-lib:fref g-%data%
(1) ((1 13)) g-%offset%
)
155 (coerce 1.0f0
'double-float
))
156 (setf (f2cl-lib:fref g-%data%
(2) ((1 13)) g-%offset%
)
157 (coerce 0.5f0
'double-float
))
158 (setf (f2cl-lib:fref sig
(1) ((1 13))) (coerce 1.0f0
'double-float
))
159 (if (not start
) (go label99
))
161 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
162 var-10 var-11 var-12 var-13
)
174 (f2cl-lib:int-sub neqn
1)
178 (declare (ignore var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8
179 var-10 var-12 var-13
))
185 (setf ifpc2 var-11
)))
186 (if (> ifpc2
0) (go end_label
))
187 (setf sum
(coerce 0.0f0
'double-float
))
188 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
191 (setf (f2cl-lib:fref phi-%data%
195 (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
))
196 (setf (f2cl-lib:fref phi-%data%
200 (coerce 0.0f0
'double-float
))
205 (/ (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
206 (f2cl-lib:fref wt-%data%
211 (setf sum
(f2cl-lib:fsqrt sum
))
213 (if (< eps
(* 16.0f0 sum h h
))
214 (setf absh
(* 0.25f0
(f2cl-lib:fsqrt
(/ eps sum
)))))
215 (setf h
(f2cl-lib:sign
(max absh
(* fouru
(abs x
))) h
))
216 (setf hold
(coerce 0.0f0
'double-float
))
220 (setf start f2cl-lib
:%false%
)
221 (setf phase1 f2cl-lib
:%true%
)
222 (setf nornd f2cl-lib
:%true%
)
223 (if (> p5eps
(* 100.0f0 round$
)) (go label99
))
224 (setf nornd f2cl-lib
:%false%
)
225 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
229 (setf (f2cl-lib:fref phi-%data%
233 (coerce 0.0f0
'double-float
))))
237 (setf kp1
(f2cl-lib:int-add k
1))
238 (setf kp2
(f2cl-lib:int-add k
2))
239 (setf km1
(f2cl-lib:int-sub k
1))
240 (setf km2
(f2cl-lib:int-sub k
2))
241 (if (/= h hold
) (setf ns
0))
242 (if (<= ns kold
) (setf ns
(f2cl-lib:int-add ns
1)))
243 (setf nsp1
(f2cl-lib:int-add ns
1))
244 (if (< k ns
) (go label199
))
245 (setf (f2cl-lib:fref beta
(ns) ((1 12))) (coerce 1.0f0
'double-float
))
246 (setf realns
(coerce (the f2cl-lib
:integer4 ns
) 'double-float
))
247 (setf (f2cl-lib:fref alpha-%data%
(ns) ((1 12)) alpha-%offset%
)
249 (setf temp1
(* h realns
))
250 (setf (f2cl-lib:fref sig
(nsp1) ((1 13))) (coerce 1.0f0
'double-float
))
251 (if (< k nsp1
) (go label110
))
252 (f2cl-lib:fdo
(i nsp1
(f2cl-lib:int-add i
1))
255 (setf im1
(f2cl-lib:int-sub i
1))
256 (setf temp2
(f2cl-lib:fref psi
(im1) ((1 12))))
257 (setf (f2cl-lib:fref psi
(im1) ((1 12))) temp1
)
258 (setf (f2cl-lib:fref beta
(i) ((1 12)))
260 (* (f2cl-lib:fref beta
(im1) ((1 12)))
261 (f2cl-lib:fref psi
(im1) ((1 12))))
263 (setf temp1
(+ temp2 h
))
264 (setf (f2cl-lib:fref alpha-%data%
(i) ((1 12)) alpha-%offset%
)
266 (setf reali
(coerce (the f2cl-lib
:integer4 i
) 'double-float
))
268 (setf (f2cl-lib:fref sig
((f2cl-lib:int-add i
1)) ((1 13)))
270 (f2cl-lib:fref alpha-%data%
(i) ((1 12)) alpha-%offset%
)
271 (f2cl-lib:fref sig
(i) ((1 13)))))))
273 (setf (f2cl-lib:fref psi
(k) ((1 12))) temp1
)
274 (if (> ns
1) (go label120
))
275 (f2cl-lib:fdo
(iq 1 (f2cl-lib:int-add iq
1))
280 (the f2cl-lib
:integer4
281 (f2cl-lib:int-mul iq
(f2cl-lib:int-add iq
1)))
283 (setf (f2cl-lib:fref v
(iq) ((1 12))) (/ 1.0f0 temp3
))
285 (setf (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
286 (f2cl-lib:fref v
(iq) ((1 12))))))
289 (if (= k
1) (go label140
))
291 (setf (f2cl-lib:fref gi-%data%
(1) ((1 11)) gi-%offset%
)
292 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
295 (if (<= k kprev
) (go label130
))
296 (if (= ivc
0) (go label122
))
298 (f2cl-lib:int-sub kp1
299 (f2cl-lib:fref iv-%data%
303 (setf ivc
(f2cl-lib:int-sub ivc
1))
308 (coerce (the f2cl-lib
:integer4
(f2cl-lib:int-mul k kp1
))
310 (setf (f2cl-lib:fref v
(k) ((1 12))) (/ 1.0f0 temp4
))
311 (setf (f2cl-lib:fref w-%data%
(k) ((1 12)) w-%offset%
)
312 (f2cl-lib:fref v
(k) ((1 12))))
313 (if (/= k
2) (go label123
))
315 (setf (f2cl-lib:fref gi-%data%
(1) ((1 11)) gi-%offset%
)
316 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
318 (setf nsm2
(f2cl-lib:int-sub ns
2))
319 (if (< nsm2 jv
) (go label130
))
320 (f2cl-lib:fdo
(j jv
(f2cl-lib:int-add j
1))
323 (setf i
(f2cl-lib:int-sub k j
))
324 (setf (f2cl-lib:fref v
(i) ((1 12)))
325 (- (f2cl-lib:fref v
(i) ((1 12)))
327 (f2cl-lib:fref alpha-%data%
328 ((f2cl-lib:int-add j
1))
331 (f2cl-lib:fref v
((f2cl-lib:int-add i
1)) ((1 12))))))
333 (setf (f2cl-lib:fref w-%data%
(i) ((1 12)) w-%offset%
)
334 (f2cl-lib:fref v
(i) ((1 12))))))
335 (if (/= i
2) (go label130
))
336 (setf kgi
(f2cl-lib:int-sub ns
1))
337 (setf (f2cl-lib:fref gi-%data%
(kgi) ((1 11)) gi-%offset%
)
338 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
340 (setf limit1
(f2cl-lib:int-sub kp1 ns
))
341 (setf temp5
(f2cl-lib:fref alpha-%data%
(ns) ((1 12)) alpha-%offset%
))
342 (f2cl-lib:fdo
(iq 1 (f2cl-lib:int-add iq
1))
345 (setf (f2cl-lib:fref v
(iq) ((1 12)))
346 (- (f2cl-lib:fref v
(iq) ((1 12)))
349 ((f2cl-lib:int-add iq
1))
352 (setf (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
353 (f2cl-lib:fref v
(iq) ((1 12))))))
354 (setf (f2cl-lib:fref g-%data%
(nsp1) ((1 13)) g-%offset%
)
355 (f2cl-lib:fref w-%data%
(1) ((1 12)) w-%offset%
))
356 (if (= limit1
1) (go label137
))
358 (setf (f2cl-lib:fref gi-%data%
(kgi) ((1 11)) gi-%offset%
)
359 (f2cl-lib:fref w-%data%
(2) ((1 12)) w-%offset%
))
361 (setf (f2cl-lib:fref w-%data%
362 ((f2cl-lib:int-add limit1
1))
365 (f2cl-lib:fref v
((f2cl-lib:int-add limit1
1)) ((1 12))))
366 (if (>= k kold
) (go label140
))
367 (setf ivc
(f2cl-lib:int-add ivc
1))
368 (setf (f2cl-lib:fref iv-%data%
(ivc) ((1 10)) iv-%offset%
)
369 (f2cl-lib:int-add limit1
2))
371 (setf nsp2
(f2cl-lib:int-add ns
2))
373 (if (< kp1 nsp2
) (go label199
))
374 (f2cl-lib:fdo
(i nsp2
(f2cl-lib:int-add i
1))
377 (setf limit2
(f2cl-lib:int-sub kp2 i
))
379 (f2cl-lib:fref alpha-%data%
380 ((f2cl-lib:int-sub i
1))
383 (f2cl-lib:fdo
(iq 1 (f2cl-lib:int-add iq
1))
387 (setf (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
388 (- (f2cl-lib:fref w-%data%
(iq) ((1 12)) w-%offset%
)
390 (f2cl-lib:fref w-%data%
391 ((f2cl-lib:int-add iq
1))
395 (setf (f2cl-lib:fref g-%data%
(i) ((1 13)) g-%offset%
)
396 (f2cl-lib:fref w-%data%
(1) ((1 12)) w-%offset%
))))
398 (setf ksteps
(f2cl-lib:int-add ksteps
1))
399 (if (< k nsp1
) (go label215
))
400 (f2cl-lib:fdo
(i nsp1
(f2cl-lib:int-add i
1))
403 (setf temp1
(f2cl-lib:fref beta
(i) ((1 12))))
404 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
408 (setf (f2cl-lib:fref phi-%data%
413 (f2cl-lib:fref phi-%data%
419 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
422 (setf (f2cl-lib:fref phi-%data%
426 (f2cl-lib:fref phi-%data%
430 (setf (f2cl-lib:fref phi-%data%
434 (coerce 0.0f0
'double-float
))
436 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
437 (coerce 0.0f0
'double-float
))))
438 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
441 (setf i
(f2cl-lib:int-sub kp1 j
))
442 (setf ip1
(f2cl-lib:int-add i
1))
443 (setf temp2
(f2cl-lib:fref g-%data%
(i) ((1 13)) g-%offset%
))
444 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
447 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
448 (+ (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
450 (f2cl-lib:fref phi-%data%
455 (setf (f2cl-lib:fref phi-%data%
460 (f2cl-lib:fref phi-%data%
464 (f2cl-lib:fref phi-%data%
469 (if nornd
(go label240
))
470 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
474 (- (* h
(f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
))
475 (f2cl-lib:fref phi-%data%
479 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
480 (+ (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
) tau
))
482 (setf (f2cl-lib:fref phi-%data%
486 (- (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
487 (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
491 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
495 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
496 (+ (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
498 (f2cl-lib:fref p-%data%
507 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
508 var-10 var-11 var-12 var-13
)
520 (f2cl-lib:int-sub neqn
1)
524 (declare (ignore var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8
525 var-10 var-12 var-13
))
531 (setf ifpc2 var-11
)))
532 (if (> ifpc2
0) (go end_label
))
533 (setf erkm2
(coerce 0.0f0
'double-float
))
534 (setf erkm1
(coerce 0.0f0
'double-float
))
535 (setf erk
(coerce 0.0f0
'double-float
))
536 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
541 (f2cl-lib:fref wt-%data%
(l) ((1 neqn
)) wt-%offset%
)))
543 (- (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
544 (f2cl-lib:fref phi-%data%
548 (f2cl-lib:arithmetic-if km2
558 (f2cl-lib:fref phi-%data%
571 (f2cl-lib:fref phi-%data%
579 (setf erk
(+ erk
(expt (* temp4 temp3
) 2)))))
580 (f2cl-lib:arithmetic-if km2
(go label280
) (go label275
) (go label270
))
584 (f2cl-lib:fref sig
(km1) ((1 13)))
585 (f2cl-lib:fref gstr
(km2) ((1 13)))
586 (f2cl-lib:fsqrt erkm2
)))
590 (f2cl-lib:fref sig
(k) ((1 13)))
591 (f2cl-lib:fref gstr
(km1) ((1 13)))
592 (f2cl-lib:fsqrt erkm1
)))
594 (setf temp5
(* absh
(f2cl-lib:fsqrt erk
)))
597 (- (f2cl-lib:fref g-%data%
(k) ((1 13)) g-%offset%
)
598 (f2cl-lib:fref g-%data%
(kp1) ((1 13)) g-%offset%
))))
601 (f2cl-lib:fref sig
(kp1) ((1 13)))
602 (f2cl-lib:fref gstr
(k) ((1 13)))))
604 (f2cl-lib:arithmetic-if km2
(go label299
) (go label290
) (go label285
))
606 (if (<= (max erkm1 erkm2
) erk
) (setf knew km1
))
609 (if (<= erkm1
(* 0.5f0 erk
)) (setf knew km1
))
611 (if (<= err eps
) (go label400
))
612 (setf phase1 f2cl-lib
:%false%
)
614 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
617 (setf temp1
(/ 1.0f0
(f2cl-lib:fref beta
(i) ((1 12)))))
618 (setf ip1
(f2cl-lib:int-add i
1))
619 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
623 (setf (f2cl-lib:fref phi-%data%
629 (f2cl-lib:fref phi-%data%
633 (f2cl-lib:fref phi-%data%
638 (if (< k
2) (go label320
))
639 (f2cl-lib:fdo
(i 2 (f2cl-lib:int-add i
1))
643 (setf (f2cl-lib:fref psi
((f2cl-lib:int-sub i
1)) ((1 12)))
644 (- (f2cl-lib:fref psi
(i) ((1 12))) h
))))
646 (setf ifail
(f2cl-lib:int-add ifail
1))
647 (setf temp2
(coerce 0.5f0
'double-float
))
648 (f2cl-lib:arithmetic-if
(f2cl-lib:int-sub ifail
3)
653 (if (< p5eps
(* 0.25f0 erk
))
654 (setf temp2
(f2cl-lib:fsqrt
(/ p5eps erk
))))
661 (if (>= (abs h
) (* fouru
(abs x
))) (go label340
))
662 (setf crash f2cl-lib
:%true%
)
663 (setf h
(f2cl-lib:sign
(* fouru
(abs x
)) h
))
664 (setf eps
(+ eps eps
))
671 (setf temp1
(* h
(f2cl-lib:fref g-%data%
(kp1) ((1 13)) g-%offset%
)))
672 (if nornd
(go label410
))
673 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
676 (setf temp3
(f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
))
680 (- (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
681 (f2cl-lib:fref phi-%data%
685 (f2cl-lib:fref phi-%data%
689 (setf (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
690 (+ (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
) rho
))
691 (setf (f2cl-lib:fref phi-%data%
695 (- (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
696 (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
699 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
) temp3
)))
702 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
705 (setf temp3
(f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
))
706 (setf (f2cl-lib:fref y-%data%
(l) ((1 neqn
)) y-%offset%
)
707 (+ (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
)
710 (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
711 (f2cl-lib:fref phi-%data%
716 (setf (f2cl-lib:fref p-%data%
(l) ((1 neqn
)) p-%offset%
) temp3
)))
719 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
720 var-10 var-11 var-12 var-13
)
732 (f2cl-lib:int-sub neqn
1)
736 (declare (ignore var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8
737 var-10 var-12 var-13
))
743 (setf ifpc2 var-11
)))
744 (if (> ifpc2
0) (go end_label
))
745 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
748 (setf (f2cl-lib:fref phi-%data%
752 (- (f2cl-lib:fref yp-%data%
(l) ((1 neqn
)) yp-%offset%
)
753 (f2cl-lib:fref phi-%data%
758 (setf (f2cl-lib:fref phi-%data%
763 (f2cl-lib:fref phi-%data%
767 (f2cl-lib:fref phi-%data%
771 (f2cl-lib:fdo
(i 1 (f2cl-lib:int-add i
1))
774 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
778 (setf (f2cl-lib:fref phi-%data%
783 (f2cl-lib:fref phi-%data%
787 (f2cl-lib:fref phi-%data%
792 (setf erkp1
(coerce 0.0f0
'double-float
))
793 (if (or (= knew km1
) (= k
12)) (setf phase1 f2cl-lib
:%false%
))
794 (if phase1
(go label450
))
795 (if (= knew km1
) (go label455
))
796 (if (> kp1 ns
) (go label460
))
797 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
805 (f2cl-lib:fref phi-%data%
809 (f2cl-lib:fref wt-%data%
(l) ((1 neqn
)) wt-%offset%
))
813 (f2cl-lib:fref gstr
(kp1) ((1 13)))
814 (f2cl-lib:fsqrt erkp1
)))
815 (if (> k
1) (go label445
))
816 (if (>= erkp1
(* 0.5f0 erk
)) (go label460
))
819 (if (<= erkm1
(min erk erkp1
)) (go label455
))
820 (if (or (>= erkp1 erk
) (= k
12)) (go label460
))
830 (if phase1
(go label465
))
833 (* erk
(f2cl-lib:fref two
((f2cl-lib:int-add k
1)) ((1 13)))))
836 (if (>= p5eps erk
) (go label465
))
838 (coerce (the f2cl-lib
:integer4
(f2cl-lib:int-add k
1))
840 (setf r
(expt (/ p5eps erk
) (/ 1.0f0 temp2
)))
841 (setf hnew
(* absh
(max 0.5 (min 0.9 r
))))
842 (setf hnew
(f2cl-lib:sign
(max hnew
(* fouru
(abs x
))) h
))
883 (in-package #:cl-user
)
884 #+#.
(cl:if
(cl:find-package
'#:f2cl
) '(and) '(or))
885 (eval-when (:load-toplevel
:compile-toplevel
:execute
)
886 (setf (gethash 'fortran-to-lisp
::steps fortran-to-lisp
::*f2cl-function-info
*)
887 (fortran-to-lisp::make-f2cl-finfo
888 :arg-types
'(t (fortran-to-lisp::integer4
) (array double-float
(*))
889 (double-float) (double-float) (double-float)
890 (array double-float
(*)) fortran-to-lisp
::logical
891 (double-float) (fortran-to-lisp::integer4
)
892 (fortran-to-lisp::integer4
) fortran-to-lisp
::logical
893 (array double-float
(*)) (array double-float
(*))
894 (array double-float
(*)) (array double-float
(*))
895 (array double-float
(*)) (array double-float
(*))
896 (fortran-to-lisp::integer4
) (double-float)
897 (fortran-to-lisp::integer4
)
898 (array fortran-to-lisp
::integer4
(*))
899 (fortran-to-lisp::integer4
) (array double-float
(*))
900 (array double-float
(*)) (array double-float
(*))
901 (array double-float
(*)) (array double-float
(*))
902 (array double-float
(*))
903 (array fortran-to-lisp
::integer4
(*))
904 (fortran-to-lisp::integer4
) (fortran-to-lisp::integer4
)
905 (array double-float
(*))
906 (array fortran-to-lisp
::integer4
(*)))
907 :return-values
'(nil nil nil fortran-to-lisp
::x fortran-to-lisp
::h
908 fortran-to-lisp
::eps nil fortran-to-lisp
::start
909 fortran-to-lisp
::hold fortran-to-lisp
::k
910 fortran-to-lisp
::kold fortran-to-lisp
::crash nil
911 nil nil nil nil nil fortran-to-lisp
::ksteps
912 fortran-to-lisp
::xold fortran-to-lisp
::ivc nil
913 fortran-to-lisp
::kgi nil nil nil nil nil nil nil
914 fortran-to-lisp
::ifpc1 fortran-to-lisp
::ifpc2 nil
916 :calls
'(fortran-to-lisp::d1mach
))))