Remove the obsolete DEFMTRFUN-EXTERNAL macro
[maxima.git] / share / hompack / lisp / pcgns.lisp
blob0cfd1466c066e8dd6e6dbf8fabd955af12cdf870
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 double-float))
17 (in-package "HOMPACK")
20 (defun pcgns (nn aa lenaa maxa pp rho start work iflag)
21 (declare (type (array f2cl-lib:integer4 (*)) maxa)
22 (type (array double-float (*)) work start rho pp aa)
23 (type (f2cl-lib:integer4) iflag lenaa nn))
24 (f2cl-lib:with-multi-array-data
25 ((aa double-float aa-%data% aa-%offset%)
26 (pp double-float pp-%data% pp-%offset%)
27 (rho double-float rho-%data% rho-%offset%)
28 (start double-float start-%data% start-%offset%)
29 (work double-float work-%data% work-%offset%)
30 (maxa f2cl-lib:integer4 maxa-%data% maxa-%offset%))
31 (prog ((stillu nil) (stillb nil) (ab 0.0) (au 0.0) (bb 0.0) (bu 0.0)
32 (dznrm 0.0) (pbnprd 0.0) (punprd 0.0) (rbnprd 0.0) (rbtol 0.0)
33 (rnprd 0.0) (runprd 0.0) (rutol 0.0) (startk 0.0) (temp 0.0)
34 (unrm 0.0) (zlen 0.0) (ztol 0.0) (imax 0) (ind 0) (j 0) (k 0)
35 (np1 0) (np2 0) (n2p3 0) (n3p4 0) (n4p5 0) (n5p6 0))
36 (declare (type (f2cl-lib:integer4) n5p6 n4p5 n3p4 n2p3 np2 np1 k j ind
37 imax)
38 (type (double-float) ztol zlen unrm temp startk rutol runprd
39 rnprd rbtol rbnprd punprd pbnprd dznrm bu
40 bb au ab)
41 (type f2cl-lib:logical stillb stillu))
42 (setf np1 (f2cl-lib:int-add nn 1))
43 (setf np2 (f2cl-lib:int-add nn 2))
44 (setf n2p3 (f2cl-lib:int-add (f2cl-lib:int-mul 2 nn) 3))
45 (setf n3p4 (f2cl-lib:int-add (f2cl-lib:int-mul 3 nn) 4))
46 (setf n4p5 (f2cl-lib:int-add (f2cl-lib:int-mul 4 nn) 5))
47 (setf n5p6 (f2cl-lib:int-add (f2cl-lib:int-mul 5 nn) 6))
48 (setf k (idamax np1 start 1))
49 (setf startk
50 (f2cl-lib:fref start-%data%
51 (k)
52 ((1 (f2cl-lib:int-add nn 1)))
53 start-%offset%))
54 (dcopy lenaa aa 1
55 (f2cl-lib:array-slice work-%data%
56 double-float
57 (n5p6)
58 ((1
59 (f2cl-lib:int-add
60 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
61 lenaa
63 1)))
64 work-%offset%)
66 (setf (f2cl-lib:fref maxa-%data%
67 ((f2cl-lib:int-add nn 1))
68 ((1 (f2cl-lib:int-add nn 2)))
69 maxa-%offset%)
70 (f2cl-lib:int-add lenaa 1))
71 (setf (f2cl-lib:fref maxa-%data%
72 ((f2cl-lib:int-add nn 2))
73 ((1 (f2cl-lib:int-add nn 2)))
74 maxa-%offset%)
75 (f2cl-lib:int-sub (f2cl-lib:int-add lenaa nn 3) k))
76 (mfacds nn
77 (f2cl-lib:array-slice work-%data%
78 double-float
79 (n5p6)
80 ((1
81 (f2cl-lib:int-add
82 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
83 lenaa
85 1)))
86 work-%offset%)
87 lenaa maxa)
88 (dcopy nn pp 1 work 1)
89 (if (< k np1)
90 (setf (f2cl-lib:fref work-%data%
91 (k)
92 ((1
93 (f2cl-lib:int-add
94 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
95 lenaa
97 1)))
98 work-%offset%)
100 (f2cl-lib:fref work-%data%
103 (f2cl-lib:int-add
104 (f2cl-lib:int-mul 5
105 (f2cl-lib:int-add nn 1))
106 lenaa
108 1)))
109 work-%offset%)
110 1.0)))
111 (setf unrm (dnrm2 nn work 1))
112 (setf imax (f2cl-lib:int-mul 10 np1))
113 (setf stillu f2cl-lib:%true%)
114 (setf stillb f2cl-lib:%true%)
115 (setf ztol (* 100.0f0 (f2cl-lib:d1mach 4)))
116 (setf rbtol
117 (* ztol
118 (f2cl-lib:fsqrt
119 (+ (expt startk 2) (expt (dnrm2 nn rho 1) 2)))))
120 (setf rutol (* ztol unrm))
121 (multds
122 (f2cl-lib:array-slice work-%data%
123 double-float
124 (n3p4)
126 (f2cl-lib:int-add
127 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
128 lenaa
130 1)))
131 work-%offset%)
133 (f2cl-lib:array-slice work-%data%
134 double-float
135 (np2)
137 (f2cl-lib:int-add
138 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
139 lenaa
141 1)))
142 work-%offset%)
143 maxa nn lenaa)
144 (setf (f2cl-lib:fref work-%data%
145 ((f2cl-lib:int-add n3p4 nn))
147 (f2cl-lib:int-add
148 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
149 lenaa
151 1)))
152 work-%offset%)
153 (f2cl-lib:fref work-%data%
154 ((f2cl-lib:int-sub (f2cl-lib:int-add np2 k) 1))
156 (f2cl-lib:int-add
157 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
158 lenaa
160 1)))
161 work-%offset%))
162 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
163 (if (< k np1)
164 (setf (f2cl-lib:fref work-%data%
165 (ind)
167 (f2cl-lib:int-add
168 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
169 lenaa
171 1)))
172 work-%offset%)
174 (f2cl-lib:fref work-%data%
175 (ind)
177 (f2cl-lib:int-add
178 (f2cl-lib:int-mul 5
179 (f2cl-lib:int-add nn 1))
180 lenaa
182 1)))
183 work-%offset%)
184 (f2cl-lib:fref work-%data%
185 ((f2cl-lib:int-add np2 nn))
187 (f2cl-lib:int-add
188 (f2cl-lib:int-mul 5
189 (f2cl-lib:int-add nn 1))
190 lenaa
192 1)))
193 work-%offset%))))
194 (dscal np1 -1.0
195 (f2cl-lib:array-slice work-%data%
196 double-float
197 (n3p4)
199 (f2cl-lib:int-add
200 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
201 lenaa
203 1)))
204 work-%offset%)
206 (daxpy nn -1.0 pp 1
207 (f2cl-lib:array-slice work-%data%
208 double-float
209 (n3p4)
211 (f2cl-lib:int-add
212 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
213 lenaa
215 1)))
216 work-%offset%)
218 (if (< k np1)
219 (setf (f2cl-lib:fref work-%data%
220 (ind)
222 (f2cl-lib:int-add
223 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
224 lenaa
226 1)))
227 work-%offset%)
229 (f2cl-lib:fref work-%data%
230 (ind)
232 (f2cl-lib:int-add
233 (f2cl-lib:int-mul 5
234 (f2cl-lib:int-add nn 1))
235 lenaa
237 1)))
238 work-%offset%)
239 1.0)))
240 (qimuds
241 (f2cl-lib:array-slice work-%data%
242 double-float
243 (n5p6)
245 (f2cl-lib:int-add
246 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
247 lenaa
249 1)))
250 work-%offset%)
251 (f2cl-lib:array-slice work-%data%
252 double-float
253 (n3p4)
255 (f2cl-lib:int-add
256 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
257 lenaa
259 1)))
260 work-%offset%)
261 maxa nn lenaa)
262 (dcopy np1
263 (f2cl-lib:array-slice work-%data%
264 double-float
265 (n3p4)
267 (f2cl-lib:int-add
268 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
269 lenaa
271 1)))
272 work-%offset%)
273 1 work 1)
274 (qimuds
275 (f2cl-lib:array-slice work-%data%
276 double-float
277 (n5p6)
279 (f2cl-lib:int-add
280 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
281 lenaa
283 1)))
284 work-%offset%)
285 work maxa nn lenaa)
286 (multds
287 (f2cl-lib:array-slice work-%data%
288 double-float
289 (n4p5)
291 (f2cl-lib:int-add
292 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
293 lenaa
295 1)))
296 work-%offset%)
297 aa work maxa nn lenaa)
298 (setf (f2cl-lib:fref work-%data%
299 ((f2cl-lib:int-add n4p5 nn))
301 (f2cl-lib:int-add
302 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
303 lenaa
305 1)))
306 work-%offset%)
307 (f2cl-lib:fref work-%data%
310 (f2cl-lib:int-add
311 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
312 lenaa
314 1)))
315 work-%offset%))
316 (if (< k np1)
317 (setf (f2cl-lib:fref work-%data%
318 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
320 (f2cl-lib:int-add
321 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
322 lenaa
324 1)))
325 work-%offset%)
327 (f2cl-lib:fref work-%data%
328 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
331 (f2cl-lib:int-add
332 (f2cl-lib:int-mul 5
333 (f2cl-lib:int-add nn 1))
334 lenaa
336 1)))
337 work-%offset%)
338 (f2cl-lib:fref work-%data%
339 (np1)
341 (f2cl-lib:int-add
342 (f2cl-lib:int-mul 5
343 (f2cl-lib:int-add nn 1))
344 lenaa
346 1)))
347 work-%offset%))))
348 (setf runprd
349 (ddot np1
350 (f2cl-lib:array-slice work-%data%
351 double-float
352 (n3p4)
354 (f2cl-lib:int-add
355 (f2cl-lib:int-mul 5
356 (f2cl-lib:int-add nn
358 lenaa
360 1)))
361 work-%offset%)
363 (f2cl-lib:array-slice work-%data%
364 double-float
365 (n3p4)
367 (f2cl-lib:int-add
368 (f2cl-lib:int-mul 5
369 (f2cl-lib:int-add nn
371 lenaa
373 1)))
374 work-%offset%)
376 (setf punprd
377 (ddot np1
378 (f2cl-lib:array-slice work-%data%
379 double-float
380 (n4p5)
382 (f2cl-lib:int-add
383 (f2cl-lib:int-mul 5
384 (f2cl-lib:int-add nn
386 lenaa
388 1)))
389 work-%offset%)
391 (f2cl-lib:array-slice work-%data%
392 double-float
393 (n4p5)
395 (f2cl-lib:int-add
396 (f2cl-lib:int-mul 5
397 (f2cl-lib:int-add nn
399 lenaa
401 1)))
402 work-%offset%)
404 (setf j 1)
405 label100
406 (if (not (and stillu (<= j imax))) (go label200))
407 (cond
408 ((> (f2cl-lib:fsqrt runprd) rutol)
409 (cond
410 ((= punprd 0.0f0)
411 (multds
412 (f2cl-lib:array-slice work-%data%
413 double-float
414 (n3p4)
416 (f2cl-lib:int-add
417 (f2cl-lib:int-mul 5
418 (f2cl-lib:int-add nn
420 lenaa
422 1)))
423 work-%offset%)
425 (f2cl-lib:array-slice work-%data%
426 double-float
427 (np2)
429 (f2cl-lib:int-add
430 (f2cl-lib:int-mul 5
431 (f2cl-lib:int-add nn
433 lenaa
435 1)))
436 work-%offset%)
437 maxa nn lenaa)
438 (setf (f2cl-lib:fref work-%data%
439 ((f2cl-lib:int-add n3p4 nn))
441 (f2cl-lib:int-add
442 (f2cl-lib:int-mul 5
443 (f2cl-lib:int-add nn 1))
444 lenaa
446 1)))
447 work-%offset%)
448 (f2cl-lib:fref work-%data%
449 ((f2cl-lib:int-sub (f2cl-lib:int-add np2 k)
452 (f2cl-lib:int-add
453 (f2cl-lib:int-mul 5
454 (f2cl-lib:int-add nn
456 lenaa
458 1)))
459 work-%offset%))
460 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
461 (if (< k np1)
462 (setf (f2cl-lib:fref work-%data%
463 (ind)
465 (f2cl-lib:int-add
466 (f2cl-lib:int-mul 5
467 (f2cl-lib:int-add nn
469 lenaa
471 1)))
472 work-%offset%)
474 (f2cl-lib:fref work-%data%
475 (ind)
477 (f2cl-lib:int-add
478 (f2cl-lib:int-mul 5
479 (f2cl-lib:int-add
482 lenaa
484 1)))
485 work-%offset%)
486 (f2cl-lib:fref work-%data%
487 ((f2cl-lib:int-add np2 nn))
489 (f2cl-lib:int-add
490 (f2cl-lib:int-mul 5
491 (f2cl-lib:int-add
494 lenaa
496 1)))
497 work-%offset%))))
498 (dscal np1 -1.0
499 (f2cl-lib:array-slice work-%data%
500 double-float
501 (n3p4)
503 (f2cl-lib:int-add
504 (f2cl-lib:int-mul 5
505 (f2cl-lib:int-add nn
507 lenaa
509 1)))
510 work-%offset%)
512 (daxpy nn -1.0 pp 1
513 (f2cl-lib:array-slice work-%data%
514 double-float
515 (n3p4)
517 (f2cl-lib:int-add
518 (f2cl-lib:int-mul 5
519 (f2cl-lib:int-add nn
521 lenaa
523 1)))
524 work-%offset%)
526 (if (< k np1)
527 (setf (f2cl-lib:fref work-%data%
528 ((f2cl-lib:int-sub
529 (f2cl-lib:int-add n3p4 k)
532 (f2cl-lib:int-add
533 (f2cl-lib:int-mul 5
534 (f2cl-lib:int-add nn
536 lenaa
538 1)))
539 work-%offset%)
541 (f2cl-lib:fref work-%data%
542 ((f2cl-lib:int-sub
543 (f2cl-lib:int-add n3p4 k)
546 (f2cl-lib:int-add
547 (f2cl-lib:int-mul 5
548 (f2cl-lib:int-add
551 lenaa
553 1)))
554 work-%offset%)
555 1.0)))
556 (qimuds
557 (f2cl-lib:array-slice work-%data%
558 double-float
559 (n5p6)
561 (f2cl-lib:int-add
562 (f2cl-lib:int-mul 5
563 (f2cl-lib:int-add nn
565 lenaa
567 1)))
568 work-%offset%)
569 (f2cl-lib:array-slice work-%data%
570 double-float
571 (n3p4)
573 (f2cl-lib:int-add
574 (f2cl-lib:int-mul 5
575 (f2cl-lib:int-add nn
577 lenaa
579 1)))
580 work-%offset%)
581 maxa nn lenaa)
582 (dcopy np1
583 (f2cl-lib:array-slice work-%data%
584 double-float
585 (n3p4)
587 (f2cl-lib:int-add
588 (f2cl-lib:int-mul 5
589 (f2cl-lib:int-add nn
591 lenaa
593 1)))
594 work-%offset%)
595 1 work 1)
596 (qimuds
597 (f2cl-lib:array-slice work-%data%
598 double-float
599 (n5p6)
601 (f2cl-lib:int-add
602 (f2cl-lib:int-mul 5
603 (f2cl-lib:int-add nn
605 lenaa
607 1)))
608 work-%offset%)
609 work maxa nn lenaa)
610 (multds
611 (f2cl-lib:array-slice work-%data%
612 double-float
613 (n4p5)
615 (f2cl-lib:int-add
616 (f2cl-lib:int-mul 5
617 (f2cl-lib:int-add nn
619 lenaa
621 1)))
622 work-%offset%)
623 aa work maxa nn lenaa)
624 (setf (f2cl-lib:fref work-%data%
625 ((f2cl-lib:int-add n4p5 nn))
627 (f2cl-lib:int-add
628 (f2cl-lib:int-mul 5
629 (f2cl-lib:int-add nn 1))
630 lenaa
632 1)))
633 work-%offset%)
634 (f2cl-lib:fref work-%data%
637 (f2cl-lib:int-add
638 (f2cl-lib:int-mul 5
639 (f2cl-lib:int-add nn
641 lenaa
643 1)))
644 work-%offset%))
645 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
646 (if (< k np1)
647 (setf (f2cl-lib:fref work-%data%
648 (ind)
650 (f2cl-lib:int-add
651 (f2cl-lib:int-mul 5
652 (f2cl-lib:int-add nn
654 lenaa
656 1)))
657 work-%offset%)
659 (f2cl-lib:fref work-%data%
660 (ind)
662 (f2cl-lib:int-add
663 (f2cl-lib:int-mul 5
664 (f2cl-lib:int-add
667 lenaa
669 1)))
670 work-%offset%)
671 (f2cl-lib:fref work-%data%
672 (np1)
674 (f2cl-lib:int-add
675 (f2cl-lib:int-mul 5
676 (f2cl-lib:int-add
679 lenaa
681 1)))
682 work-%offset%))))
683 (setf runprd
684 (ddot np1
685 (f2cl-lib:array-slice work-%data%
686 double-float
687 (n3p4)
689 (f2cl-lib:int-add
690 (f2cl-lib:int-mul 5
691 (f2cl-lib:int-add
694 lenaa
696 1)))
697 work-%offset%)
699 (f2cl-lib:array-slice work-%data%
700 double-float
701 (n3p4)
703 (f2cl-lib:int-add
704 (f2cl-lib:int-mul 5
705 (f2cl-lib:int-add
708 lenaa
710 1)))
711 work-%offset%)
713 (setf punprd
714 (ddot np1
715 (f2cl-lib:array-slice work-%data%
716 double-float
717 (n4p5)
719 (f2cl-lib:int-add
720 (f2cl-lib:int-mul 5
721 (f2cl-lib:int-add
724 lenaa
726 1)))
727 work-%offset%)
729 (f2cl-lib:array-slice work-%data%
730 double-float
731 (n4p5)
733 (f2cl-lib:int-add
734 (f2cl-lib:int-mul 5
735 (f2cl-lib:int-add
738 lenaa
740 1)))
741 work-%offset%)
743 (cond
744 ((<= (f2cl-lib:fsqrt runprd) rutol)
745 (setf stillu f2cl-lib:%false%)))))
746 (cond
747 (stillu
748 (setf au (/ runprd punprd))
749 (dcopy np1
750 (f2cl-lib:array-slice work-%data%
751 double-float
752 (np2)
754 (f2cl-lib:int-add
755 (f2cl-lib:int-mul 5
756 (f2cl-lib:int-add nn
758 lenaa
760 1)))
761 work-%offset%)
762 1 work 1)
763 (daxpy np1 au
764 (f2cl-lib:array-slice work-%data%
765 double-float
766 (n4p5)
768 (f2cl-lib:int-add
769 (f2cl-lib:int-mul 5
770 (f2cl-lib:int-add nn
772 lenaa
774 1)))
775 work-%offset%)
777 (f2cl-lib:array-slice work-%data%
778 double-float
779 (np2)
781 (f2cl-lib:int-add
782 (f2cl-lib:int-mul 5
783 (f2cl-lib:int-add nn
785 lenaa
787 1)))
788 work-%offset%)
790 (daxpy np1 -1.0
791 (f2cl-lib:array-slice work-%data%
792 double-float
793 (np2)
795 (f2cl-lib:int-add
796 (f2cl-lib:int-mul 5
797 (f2cl-lib:int-add nn
799 lenaa
801 1)))
802 work-%offset%)
803 1 work 1)
804 (setf zlen
805 (dnrm2 np1
806 (f2cl-lib:array-slice work-%data%
807 double-float
808 (np2)
810 (f2cl-lib:int-add
811 (f2cl-lib:int-mul 5
812 (f2cl-lib:int-add
815 lenaa
817 1)))
818 work-%offset%)
820 (setf dznrm (dnrm2 np1 work 1))
821 (if (< (/ dznrm zlen) ztol) (setf stillu f2cl-lib:%false%)))))
823 (setf stillu f2cl-lib:%false%)))
824 (cond
825 (stillu
826 (multds work aa
827 (f2cl-lib:array-slice work-%data%
828 double-float
829 (n4p5)
831 (f2cl-lib:int-add
832 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
833 lenaa
835 1)))
836 work-%offset%)
837 maxa nn lenaa)
838 (setf (f2cl-lib:fref work-%data%
839 (np1)
841 (f2cl-lib:int-add
842 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
843 lenaa
845 1)))
846 work-%offset%)
847 (f2cl-lib:fref work-%data%
848 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
851 (f2cl-lib:int-add
852 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
853 lenaa
855 1)))
856 work-%offset%))
857 (if (< k np1)
858 (setf (f2cl-lib:fref work-%data%
861 (f2cl-lib:int-add
862 (f2cl-lib:int-mul 5
863 (f2cl-lib:int-add nn 1))
864 lenaa
866 1)))
867 work-%offset%)
869 (f2cl-lib:fref work-%data%
872 (f2cl-lib:int-add
873 (f2cl-lib:int-mul 5
874 (f2cl-lib:int-add nn
876 lenaa
878 1)))
879 work-%offset%)
880 (f2cl-lib:fref work-%data%
881 ((f2cl-lib:int-add n4p5 nn))
883 (f2cl-lib:int-add
884 (f2cl-lib:int-mul 5
885 (f2cl-lib:int-add nn
887 lenaa
889 1)))
890 work-%offset%))))
891 (qimuds
892 (f2cl-lib:array-slice work-%data%
893 double-float
894 (n5p6)
896 (f2cl-lib:int-add
897 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
898 lenaa
900 1)))
901 work-%offset%)
902 work maxa nn lenaa)
903 (daxpy np1 (- au) work 1
904 (f2cl-lib:array-slice work-%data%
905 double-float
906 (n3p4)
908 (f2cl-lib:int-add
909 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
910 lenaa
912 1)))
913 work-%offset%)
915 (setf rnprd
916 (ddot np1
917 (f2cl-lib:array-slice work-%data%
918 double-float
919 (n3p4)
921 (f2cl-lib:int-add
922 (f2cl-lib:int-mul 5
923 (f2cl-lib:int-add
926 lenaa
928 1)))
929 work-%offset%)
931 (f2cl-lib:array-slice work-%data%
932 double-float
933 (n3p4)
935 (f2cl-lib:int-add
936 (f2cl-lib:int-mul 5
937 (f2cl-lib:int-add
940 lenaa
942 1)))
943 work-%offset%)
945 (setf bu (/ rnprd runprd))
946 (setf runprd rnprd)
947 (dcopy np1
948 (f2cl-lib:array-slice work-%data%
949 double-float
950 (n3p4)
952 (f2cl-lib:int-add
953 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
954 lenaa
956 1)))
957 work-%offset%)
958 1 work 1)
959 (qimuds
960 (f2cl-lib:array-slice work-%data%
961 double-float
962 (n5p6)
964 (f2cl-lib:int-add
965 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
966 lenaa
968 1)))
969 work-%offset%)
970 work maxa nn lenaa)
971 (multds start aa work maxa nn lenaa)
972 (setf (f2cl-lib:fref start-%data%
973 (np1)
974 ((1 (f2cl-lib:int-add nn 1)))
975 start-%offset%)
976 (f2cl-lib:fref work-%data%
979 (f2cl-lib:int-add
980 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
981 lenaa
983 1)))
984 work-%offset%))
985 (if (< k np1)
986 (setf (f2cl-lib:fref start-%data%
988 ((1 (f2cl-lib:int-add nn 1)))
989 start-%offset%)
991 (f2cl-lib:fref start-%data%
993 ((1 (f2cl-lib:int-add nn 1)))
994 start-%offset%)
995 (f2cl-lib:fref work-%data%
996 (np1)
998 (f2cl-lib:int-add
999 (f2cl-lib:int-mul 5
1000 (f2cl-lib:int-add nn
1002 lenaa
1004 1)))
1005 work-%offset%))))
1006 (daxpy np1 bu
1007 (f2cl-lib:array-slice work-%data%
1008 double-float
1009 (n4p5)
1011 (f2cl-lib:int-add
1012 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1013 lenaa
1015 1)))
1016 work-%offset%)
1017 1 start 1)
1018 (dcopy np1 start 1
1019 (f2cl-lib:array-slice work-%data%
1020 double-float
1021 (n4p5)
1023 (f2cl-lib:int-add
1024 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1025 lenaa
1027 1)))
1028 work-%offset%)
1030 (setf punprd
1031 (ddot np1
1032 (f2cl-lib:array-slice work-%data%
1033 double-float
1034 (n4p5)
1036 (f2cl-lib:int-add
1037 (f2cl-lib:int-mul 5
1038 (f2cl-lib:int-add
1041 lenaa
1043 1)))
1044 work-%offset%)
1046 (f2cl-lib:array-slice work-%data%
1047 double-float
1048 (n4p5)
1050 (f2cl-lib:int-add
1051 (f2cl-lib:int-mul 5
1052 (f2cl-lib:int-add
1055 lenaa
1057 1)))
1058 work-%offset%)
1059 1))))
1060 (setf j (f2cl-lib:int-add j 1))
1061 (go label100)
1062 label200
1063 (cond
1064 ((> j imax)
1065 (setf iflag 4)
1066 (go end_label)))
1067 (multds
1068 (f2cl-lib:array-slice work-%data%
1069 double-float
1070 (n3p4)
1072 (f2cl-lib:int-add
1073 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1074 lenaa
1076 1)))
1077 work-%offset%)
1079 (f2cl-lib:array-slice work-%data%
1080 double-float
1081 (n2p3)
1083 (f2cl-lib:int-add
1084 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1085 lenaa
1087 1)))
1088 work-%offset%)
1089 maxa nn lenaa)
1090 (setf (f2cl-lib:fref work-%data%
1091 ((f2cl-lib:int-add n3p4 nn))
1093 (f2cl-lib:int-add
1094 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1095 lenaa
1097 1)))
1098 work-%offset%)
1099 (f2cl-lib:fref work-%data%
1100 ((f2cl-lib:int-sub (f2cl-lib:int-add n2p3 k) 1))
1102 (f2cl-lib:int-add
1103 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1104 lenaa
1106 1)))
1107 work-%offset%))
1108 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
1109 (if (< k np1)
1110 (setf (f2cl-lib:fref work-%data%
1111 (ind)
1113 (f2cl-lib:int-add
1114 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1115 lenaa
1117 1)))
1118 work-%offset%)
1120 (f2cl-lib:fref work-%data%
1121 (ind)
1123 (f2cl-lib:int-add
1124 (f2cl-lib:int-mul 5
1125 (f2cl-lib:int-add nn 1))
1126 lenaa
1128 1)))
1129 work-%offset%)
1130 (f2cl-lib:fref work-%data%
1131 ((f2cl-lib:int-add n2p3 nn))
1133 (f2cl-lib:int-add
1134 (f2cl-lib:int-mul 5
1135 (f2cl-lib:int-add nn 1))
1136 lenaa
1138 1)))
1139 work-%offset%))))
1140 (dscal np1 -1.0
1141 (f2cl-lib:array-slice work-%data%
1142 double-float
1143 (n3p4)
1145 (f2cl-lib:int-add
1146 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1147 lenaa
1149 1)))
1150 work-%offset%)
1152 (daxpy nn -1.0 rho 1
1153 (f2cl-lib:array-slice work-%data%
1154 double-float
1155 (n3p4)
1157 (f2cl-lib:int-add
1158 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1159 lenaa
1161 1)))
1162 work-%offset%)
1164 (setf (f2cl-lib:fref work-%data%
1165 ((f2cl-lib:int-add n3p4 nn))
1167 (f2cl-lib:int-add
1168 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1169 lenaa
1171 1)))
1172 work-%offset%)
1173 (+ startk
1174 (f2cl-lib:fref work-%data%
1175 ((f2cl-lib:int-add n3p4 nn))
1177 (f2cl-lib:int-add
1178 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1179 lenaa
1181 1)))
1182 work-%offset%)))
1183 (qimuds
1184 (f2cl-lib:array-slice work-%data%
1185 double-float
1186 (n5p6)
1188 (f2cl-lib:int-add
1189 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1190 lenaa
1192 1)))
1193 work-%offset%)
1194 (f2cl-lib:array-slice work-%data%
1195 double-float
1196 (n3p4)
1198 (f2cl-lib:int-add
1199 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1200 lenaa
1202 1)))
1203 work-%offset%)
1204 maxa nn lenaa)
1205 (dcopy np1
1206 (f2cl-lib:array-slice work-%data%
1207 double-float
1208 (n3p4)
1210 (f2cl-lib:int-add
1211 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1212 lenaa
1214 1)))
1215 work-%offset%)
1216 1 work 1)
1217 (qimuds
1218 (f2cl-lib:array-slice work-%data%
1219 double-float
1220 (n5p6)
1222 (f2cl-lib:int-add
1223 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1224 lenaa
1226 1)))
1227 work-%offset%)
1228 work maxa nn lenaa)
1229 (multds
1230 (f2cl-lib:array-slice work-%data%
1231 double-float
1232 (n4p5)
1234 (f2cl-lib:int-add
1235 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1236 lenaa
1238 1)))
1239 work-%offset%)
1240 aa work maxa nn lenaa)
1241 (setf (f2cl-lib:fref work-%data%
1242 ((f2cl-lib:int-add n4p5 nn))
1244 (f2cl-lib:int-add
1245 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1246 lenaa
1248 1)))
1249 work-%offset%)
1250 (f2cl-lib:fref work-%data%
1253 (f2cl-lib:int-add
1254 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1255 lenaa
1257 1)))
1258 work-%offset%))
1259 (if (< k np1)
1260 (setf (f2cl-lib:fref work-%data%
1261 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
1263 (f2cl-lib:int-add
1264 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1265 lenaa
1267 1)))
1268 work-%offset%)
1270 (f2cl-lib:fref work-%data%
1271 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
1274 (f2cl-lib:int-add
1275 (f2cl-lib:int-mul 5
1276 (f2cl-lib:int-add nn 1))
1277 lenaa
1279 1)))
1280 work-%offset%)
1281 (f2cl-lib:fref work-%data%
1282 (np1)
1284 (f2cl-lib:int-add
1285 (f2cl-lib:int-mul 5
1286 (f2cl-lib:int-add nn 1))
1287 lenaa
1289 1)))
1290 work-%offset%))))
1291 (setf rbnprd
1292 (ddot np1
1293 (f2cl-lib:array-slice work-%data%
1294 double-float
1295 (n3p4)
1297 (f2cl-lib:int-add
1298 (f2cl-lib:int-mul 5
1299 (f2cl-lib:int-add nn
1301 lenaa
1303 1)))
1304 work-%offset%)
1306 (f2cl-lib:array-slice work-%data%
1307 double-float
1308 (n3p4)
1310 (f2cl-lib:int-add
1311 (f2cl-lib:int-mul 5
1312 (f2cl-lib:int-add nn
1314 lenaa
1316 1)))
1317 work-%offset%)
1319 (setf pbnprd
1320 (ddot np1
1321 (f2cl-lib:array-slice work-%data%
1322 double-float
1323 (n4p5)
1325 (f2cl-lib:int-add
1326 (f2cl-lib:int-mul 5
1327 (f2cl-lib:int-add nn
1329 lenaa
1331 1)))
1332 work-%offset%)
1334 (f2cl-lib:array-slice work-%data%
1335 double-float
1336 (n4p5)
1338 (f2cl-lib:int-add
1339 (f2cl-lib:int-mul 5
1340 (f2cl-lib:int-add nn
1342 lenaa
1344 1)))
1345 work-%offset%)
1347 (setf j 1)
1348 label300
1349 (if (not (and stillb (<= j imax))) (go label400))
1350 (cond
1351 ((> (f2cl-lib:fsqrt rbnprd) rbtol)
1352 (cond
1353 ((= pbnprd 0.0f0)
1354 (multds
1355 (f2cl-lib:array-slice work-%data%
1356 double-float
1357 (n3p4)
1359 (f2cl-lib:int-add
1360 (f2cl-lib:int-mul 5
1361 (f2cl-lib:int-add nn
1363 lenaa
1365 1)))
1366 work-%offset%)
1368 (f2cl-lib:array-slice work-%data%
1369 double-float
1370 (n2p3)
1372 (f2cl-lib:int-add
1373 (f2cl-lib:int-mul 5
1374 (f2cl-lib:int-add nn
1376 lenaa
1378 1)))
1379 work-%offset%)
1380 maxa nn lenaa)
1381 (setf (f2cl-lib:fref work-%data%
1382 ((f2cl-lib:int-add n3p4 nn))
1384 (f2cl-lib:int-add
1385 (f2cl-lib:int-mul 5
1386 (f2cl-lib:int-add nn 1))
1387 lenaa
1389 1)))
1390 work-%offset%)
1391 (f2cl-lib:fref work-%data%
1392 ((f2cl-lib:int-sub (f2cl-lib:int-add n2p3 k)
1395 (f2cl-lib:int-add
1396 (f2cl-lib:int-mul 5
1397 (f2cl-lib:int-add nn
1399 lenaa
1401 1)))
1402 work-%offset%))
1403 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
1404 (if (< k np1)
1405 (setf (f2cl-lib:fref work-%data%
1406 (ind)
1408 (f2cl-lib:int-add
1409 (f2cl-lib:int-mul 5
1410 (f2cl-lib:int-add nn
1412 lenaa
1414 1)))
1415 work-%offset%)
1417 (f2cl-lib:fref work-%data%
1418 (ind)
1420 (f2cl-lib:int-add
1421 (f2cl-lib:int-mul 5
1422 (f2cl-lib:int-add
1425 lenaa
1427 1)))
1428 work-%offset%)
1429 (f2cl-lib:fref work-%data%
1430 ((f2cl-lib:int-add n2p3 nn))
1432 (f2cl-lib:int-add
1433 (f2cl-lib:int-mul 5
1434 (f2cl-lib:int-add
1437 lenaa
1439 1)))
1440 work-%offset%))))
1441 (dscal np1 -1.0
1442 (f2cl-lib:array-slice work-%data%
1443 double-float
1444 (n3p4)
1446 (f2cl-lib:int-add
1447 (f2cl-lib:int-mul 5
1448 (f2cl-lib:int-add nn
1450 lenaa
1452 1)))
1453 work-%offset%)
1455 (daxpy nn -1.0 rho 1
1456 (f2cl-lib:array-slice work-%data%
1457 double-float
1458 (n3p4)
1460 (f2cl-lib:int-add
1461 (f2cl-lib:int-mul 5
1462 (f2cl-lib:int-add nn
1464 lenaa
1466 1)))
1467 work-%offset%)
1469 (setf (f2cl-lib:fref work-%data%
1470 ((f2cl-lib:int-add n3p4 nn))
1472 (f2cl-lib:int-add
1473 (f2cl-lib:int-mul 5
1474 (f2cl-lib:int-add nn 1))
1475 lenaa
1477 1)))
1478 work-%offset%)
1479 (+ startk
1480 (f2cl-lib:fref work-%data%
1481 ((f2cl-lib:int-add n3p4 nn))
1483 (f2cl-lib:int-add
1484 (f2cl-lib:int-mul 5
1485 (f2cl-lib:int-add nn
1487 lenaa
1489 1)))
1490 work-%offset%)))
1491 (qimuds
1492 (f2cl-lib:array-slice work-%data%
1493 double-float
1494 (n5p6)
1496 (f2cl-lib:int-add
1497 (f2cl-lib:int-mul 5
1498 (f2cl-lib:int-add nn
1500 lenaa
1502 1)))
1503 work-%offset%)
1504 (f2cl-lib:array-slice work-%data%
1505 double-float
1506 (n3p4)
1508 (f2cl-lib:int-add
1509 (f2cl-lib:int-mul 5
1510 (f2cl-lib:int-add nn
1512 lenaa
1514 1)))
1515 work-%offset%)
1516 maxa nn lenaa)
1517 (dcopy np1
1518 (f2cl-lib:array-slice work-%data%
1519 double-float
1520 (n3p4)
1522 (f2cl-lib:int-add
1523 (f2cl-lib:int-mul 5
1524 (f2cl-lib:int-add nn
1526 lenaa
1528 1)))
1529 work-%offset%)
1530 1 work 1)
1531 (qimuds
1532 (f2cl-lib:array-slice work-%data%
1533 double-float
1534 (n5p6)
1536 (f2cl-lib:int-add
1537 (f2cl-lib:int-mul 5
1538 (f2cl-lib:int-add nn
1540 lenaa
1542 1)))
1543 work-%offset%)
1544 work maxa nn lenaa)
1545 (multds
1546 (f2cl-lib:array-slice work-%data%
1547 double-float
1548 (n4p5)
1550 (f2cl-lib:int-add
1551 (f2cl-lib:int-mul 5
1552 (f2cl-lib:int-add nn
1554 lenaa
1556 1)))
1557 work-%offset%)
1558 aa work maxa nn lenaa)
1559 (setf (f2cl-lib:fref work-%data%
1560 ((f2cl-lib:int-add n4p5 nn))
1562 (f2cl-lib:int-add
1563 (f2cl-lib:int-mul 5
1564 (f2cl-lib:int-add nn 1))
1565 lenaa
1567 1)))
1568 work-%offset%)
1569 (f2cl-lib:fref work-%data%
1572 (f2cl-lib:int-add
1573 (f2cl-lib:int-mul 5
1574 (f2cl-lib:int-add nn
1576 lenaa
1578 1)))
1579 work-%offset%))
1580 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
1581 (if (< k np1)
1582 (setf (f2cl-lib:fref work-%data%
1583 (ind)
1585 (f2cl-lib:int-add
1586 (f2cl-lib:int-mul 5
1587 (f2cl-lib:int-add nn
1589 lenaa
1591 1)))
1592 work-%offset%)
1594 (f2cl-lib:fref work-%data%
1595 (ind)
1597 (f2cl-lib:int-add
1598 (f2cl-lib:int-mul 5
1599 (f2cl-lib:int-add
1602 lenaa
1604 1)))
1605 work-%offset%)
1606 (f2cl-lib:fref work-%data%
1607 (np1)
1609 (f2cl-lib:int-add
1610 (f2cl-lib:int-mul 5
1611 (f2cl-lib:int-add
1614 lenaa
1616 1)))
1617 work-%offset%))))
1618 (setf rbnprd
1619 (ddot np1
1620 (f2cl-lib:array-slice work-%data%
1621 double-float
1622 (n3p4)
1624 (f2cl-lib:int-add
1625 (f2cl-lib:int-mul 5
1626 (f2cl-lib:int-add
1629 lenaa
1631 1)))
1632 work-%offset%)
1634 (f2cl-lib:array-slice work-%data%
1635 double-float
1636 (n3p4)
1638 (f2cl-lib:int-add
1639 (f2cl-lib:int-mul 5
1640 (f2cl-lib:int-add
1643 lenaa
1645 1)))
1646 work-%offset%)
1648 (setf pbnprd
1649 (ddot np1
1650 (f2cl-lib:array-slice work-%data%
1651 double-float
1652 (n4p5)
1654 (f2cl-lib:int-add
1655 (f2cl-lib:int-mul 5
1656 (f2cl-lib:int-add
1659 lenaa
1661 1)))
1662 work-%offset%)
1664 (f2cl-lib:array-slice work-%data%
1665 double-float
1666 (n4p5)
1668 (f2cl-lib:int-add
1669 (f2cl-lib:int-mul 5
1670 (f2cl-lib:int-add
1673 lenaa
1675 1)))
1676 work-%offset%)
1678 (cond
1679 ((<= (f2cl-lib:fsqrt rbnprd) rbtol)
1680 (setf stillb f2cl-lib:%false%)))))
1681 (cond
1682 (stillb
1683 (setf ab (/ rbnprd pbnprd))
1684 (dcopy np1
1685 (f2cl-lib:array-slice work-%data%
1686 double-float
1687 (n2p3)
1689 (f2cl-lib:int-add
1690 (f2cl-lib:int-mul 5
1691 (f2cl-lib:int-add nn
1693 lenaa
1695 1)))
1696 work-%offset%)
1697 1 work 1)
1698 (daxpy np1 ab
1699 (f2cl-lib:array-slice work-%data%
1700 double-float
1701 (n4p5)
1703 (f2cl-lib:int-add
1704 (f2cl-lib:int-mul 5
1705 (f2cl-lib:int-add nn
1707 lenaa
1709 1)))
1710 work-%offset%)
1712 (f2cl-lib:array-slice work-%data%
1713 double-float
1714 (n2p3)
1716 (f2cl-lib:int-add
1717 (f2cl-lib:int-mul 5
1718 (f2cl-lib:int-add nn
1720 lenaa
1722 1)))
1723 work-%offset%)
1725 (daxpy np1 -1.0
1726 (f2cl-lib:array-slice work-%data%
1727 double-float
1728 (n2p3)
1730 (f2cl-lib:int-add
1731 (f2cl-lib:int-mul 5
1732 (f2cl-lib:int-add nn
1734 lenaa
1736 1)))
1737 work-%offset%)
1738 1 work 1)
1739 (setf zlen
1740 (dnrm2 np1
1741 (f2cl-lib:array-slice work-%data%
1742 double-float
1743 (n2p3)
1745 (f2cl-lib:int-add
1746 (f2cl-lib:int-mul 5
1747 (f2cl-lib:int-add
1750 lenaa
1752 1)))
1753 work-%offset%)
1755 (setf dznrm (dnrm2 np1 work 1))
1756 (if (< (/ dznrm zlen) ztol) (setf stillb f2cl-lib:%false%)))))
1758 (setf stillb f2cl-lib:%false%)))
1759 (cond
1760 (stillb
1761 (multds work aa
1762 (f2cl-lib:array-slice work-%data%
1763 double-float
1764 (n4p5)
1766 (f2cl-lib:int-add
1767 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1768 lenaa
1770 1)))
1771 work-%offset%)
1772 maxa nn lenaa)
1773 (setf (f2cl-lib:fref work-%data%
1774 (np1)
1776 (f2cl-lib:int-add
1777 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1778 lenaa
1780 1)))
1781 work-%offset%)
1782 (f2cl-lib:fref work-%data%
1783 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
1786 (f2cl-lib:int-add
1787 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1788 lenaa
1790 1)))
1791 work-%offset%))
1792 (if (< k np1)
1793 (setf (f2cl-lib:fref work-%data%
1796 (f2cl-lib:int-add
1797 (f2cl-lib:int-mul 5
1798 (f2cl-lib:int-add nn 1))
1799 lenaa
1801 1)))
1802 work-%offset%)
1804 (f2cl-lib:fref work-%data%
1807 (f2cl-lib:int-add
1808 (f2cl-lib:int-mul 5
1809 (f2cl-lib:int-add nn
1811 lenaa
1813 1)))
1814 work-%offset%)
1815 (f2cl-lib:fref work-%data%
1816 ((f2cl-lib:int-add n4p5 nn))
1818 (f2cl-lib:int-add
1819 (f2cl-lib:int-mul 5
1820 (f2cl-lib:int-add nn
1822 lenaa
1824 1)))
1825 work-%offset%))))
1826 (qimuds
1827 (f2cl-lib:array-slice work-%data%
1828 double-float
1829 (n5p6)
1831 (f2cl-lib:int-add
1832 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1833 lenaa
1835 1)))
1836 work-%offset%)
1837 work maxa nn lenaa)
1838 (daxpy np1 (- ab) work 1
1839 (f2cl-lib:array-slice work-%data%
1840 double-float
1841 (n3p4)
1843 (f2cl-lib:int-add
1844 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1845 lenaa
1847 1)))
1848 work-%offset%)
1850 (setf rnprd
1851 (ddot np1
1852 (f2cl-lib:array-slice work-%data%
1853 double-float
1854 (n3p4)
1856 (f2cl-lib:int-add
1857 (f2cl-lib:int-mul 5
1858 (f2cl-lib:int-add
1861 lenaa
1863 1)))
1864 work-%offset%)
1866 (f2cl-lib:array-slice work-%data%
1867 double-float
1868 (n3p4)
1870 (f2cl-lib:int-add
1871 (f2cl-lib:int-mul 5
1872 (f2cl-lib:int-add
1875 lenaa
1877 1)))
1878 work-%offset%)
1880 (setf bb (/ rnprd rbnprd))
1881 (setf rbnprd rnprd)
1882 (dcopy np1
1883 (f2cl-lib:array-slice work-%data%
1884 double-float
1885 (n3p4)
1887 (f2cl-lib:int-add
1888 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1889 lenaa
1891 1)))
1892 work-%offset%)
1893 1 work 1)
1894 (qimuds
1895 (f2cl-lib:array-slice work-%data%
1896 double-float
1897 (n5p6)
1899 (f2cl-lib:int-add
1900 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1901 lenaa
1903 1)))
1904 work-%offset%)
1905 work maxa nn lenaa)
1906 (multds start aa work maxa nn lenaa)
1907 (setf (f2cl-lib:fref start-%data%
1908 (np1)
1909 ((1 (f2cl-lib:int-add nn 1)))
1910 start-%offset%)
1911 (f2cl-lib:fref work-%data%
1914 (f2cl-lib:int-add
1915 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1916 lenaa
1918 1)))
1919 work-%offset%))
1920 (if (< k np1)
1921 (setf (f2cl-lib:fref start-%data%
1923 ((1 (f2cl-lib:int-add nn 1)))
1924 start-%offset%)
1926 (f2cl-lib:fref start-%data%
1928 ((1 (f2cl-lib:int-add nn 1)))
1929 start-%offset%)
1930 (f2cl-lib:fref work-%data%
1931 (np1)
1933 (f2cl-lib:int-add
1934 (f2cl-lib:int-mul 5
1935 (f2cl-lib:int-add nn
1937 lenaa
1939 1)))
1940 work-%offset%))))
1941 (daxpy np1 bb
1942 (f2cl-lib:array-slice work-%data%
1943 double-float
1944 (n4p5)
1946 (f2cl-lib:int-add
1947 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1948 lenaa
1950 1)))
1951 work-%offset%)
1952 1 start 1)
1953 (dcopy np1 start 1
1954 (f2cl-lib:array-slice work-%data%
1955 double-float
1956 (n4p5)
1958 (f2cl-lib:int-add
1959 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1960 lenaa
1962 1)))
1963 work-%offset%)
1965 (setf pbnprd
1966 (ddot np1
1967 (f2cl-lib:array-slice work-%data%
1968 double-float
1969 (n4p5)
1971 (f2cl-lib:int-add
1972 (f2cl-lib:int-mul 5
1973 (f2cl-lib:int-add
1976 lenaa
1978 1)))
1979 work-%offset%)
1981 (f2cl-lib:array-slice work-%data%
1982 double-float
1983 (n4p5)
1985 (f2cl-lib:int-add
1986 (f2cl-lib:int-mul 5
1987 (f2cl-lib:int-add
1990 lenaa
1992 1)))
1993 work-%offset%)
1994 1))))
1995 (setf j (f2cl-lib:int-add j 1))
1996 (go label300)
1997 label400
1998 (cond
1999 ((> j imax)
2000 (setf iflag 4)
2001 (go end_label)))
2002 (setf temp
2005 (f2cl-lib:fref work-%data%
2006 ((f2cl-lib:int-add n2p3 nn))
2008 (f2cl-lib:int-add
2009 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
2010 lenaa
2012 1)))
2013 work-%offset%))
2014 (+ 1.0
2015 (f2cl-lib:fref work-%data%
2016 ((f2cl-lib:int-add np2 nn))
2018 (f2cl-lib:int-add
2019 (f2cl-lib:int-mul 5
2020 (f2cl-lib:int-add nn 1))
2021 lenaa
2023 1)))
2024 work-%offset%))))
2025 (dcopy np1
2026 (f2cl-lib:array-slice work-%data%
2027 double-float
2028 (n2p3)
2030 (f2cl-lib:int-add
2031 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
2032 lenaa
2034 1)))
2035 work-%offset%)
2036 1 start 1)
2037 (daxpy np1 temp
2038 (f2cl-lib:array-slice work-%data%
2039 double-float
2040 (np2)
2042 (f2cl-lib:int-add
2043 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
2044 lenaa
2046 1)))
2047 work-%offset%)
2048 1 start 1)
2049 (go end_label)
2050 end_label
2051 (return (values nil nil nil nil nil nil nil nil iflag)))))
2053 (in-package #:cl-user)
2054 #+#.(cl:if (cl:find-package '#:f2cl) '(and) '(or))
2055 (eval-when (:load-toplevel :compile-toplevel :execute)
2056 (setf (gethash 'fortran-to-lisp::pcgns fortran-to-lisp::*f2cl-function-info*)
2057 (fortran-to-lisp::make-f2cl-finfo
2058 :arg-types '((fortran-to-lisp::integer4) (array double-float (*))
2059 (fortran-to-lisp::integer4)
2060 (array fortran-to-lisp::integer4 (*))
2061 (array double-float (*)) (array double-float (*))
2062 (array double-float (*)) (array double-float (*))
2063 (fortran-to-lisp::integer4))
2064 :return-values '(nil nil nil nil nil nil nil nil
2065 fortran-to-lisp::iflag)
2066 :calls '(fortran-to-lisp::ddot fortran-to-lisp::daxpy
2067 fortran-to-lisp::dscal fortran-to-lisp::dnrm2
2068 fortran-to-lisp::dcopy fortran-to-lisp::idamax
2069 fortran-to-lisp::qimuds fortran-to-lisp::multds
2070 fortran-to-lisp::d1mach fortran-to-lisp::mfacds))))