Remove the obsolete DEFMTRFUN-EXTERNAL macro
[maxima.git] / share / hompack / lisp / pcgds.lisp
blobd135bcc502314e5c9a4cee9c6fdb47eb058a0556
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 pcgds (nn aa lenaa maxa pp start work iflag)
21 (declare (type (array f2cl-lib:integer4 (*)) maxa)
22 (type (array double-float (*)) work start 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 (start double-float start-%data% start-%offset%)
28 (work double-float work-%data% work-%offset%)
29 (maxa f2cl-lib:integer4 maxa-%data% maxa-%offset%))
30 (prog ((stillu nil) (stillb nil) (ab 0.0) (au 0.0) (bb 0.0) (bu 0.0)
31 (dznrm 0.0) (pbnprd 0.0) (punprd 0.0) (rbnprd 0.0) (rbtol 0.0)
32 (rnprd 0.0) (runprd 0.0) (rutol 0.0) (startk 0.0) (temp 0.0)
33 (unrm 0.0) (zlen 0.0) (ztol 0.0) (imax 0) (ind 0) (j 0) (k 0)
34 (np1 0) (np2 0) (n2p3 0) (n3p4 0) (n4p5 0) (n5p6 0))
35 (declare (type (f2cl-lib:integer4) n5p6 n4p5 n3p4 n2p3 np2 np1 k j ind
36 imax)
37 (type (double-float) ztol zlen unrm temp startk rutol runprd
38 rnprd rbtol rbnprd punprd pbnprd dznrm bu
39 bb au ab)
40 (type f2cl-lib:logical stillb stillu))
41 (setf np1 (f2cl-lib:int-add nn 1))
42 (setf np2 (f2cl-lib:int-add nn 2))
43 (setf n2p3 (f2cl-lib:int-add (f2cl-lib:int-mul 2 nn) 3))
44 (setf n3p4 (f2cl-lib:int-add (f2cl-lib:int-mul 3 nn) 4))
45 (setf n4p5 (f2cl-lib:int-add (f2cl-lib:int-mul 4 nn) 5))
46 (setf n5p6 (f2cl-lib:int-add (f2cl-lib:int-mul 5 nn) 6))
47 (setf k (idamax np1 start 1))
48 (setf startk
49 (f2cl-lib:fref start-%data%
50 (k)
51 ((1 (f2cl-lib:int-add nn 1)))
52 start-%offset%))
53 (dcopy lenaa aa 1
54 (f2cl-lib:array-slice work-%data%
55 double-float
56 (n5p6)
57 ((1
58 (f2cl-lib:int-add
59 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
60 lenaa
62 1)))
63 work-%offset%)
65 (setf (f2cl-lib:fref maxa-%data%
66 ((f2cl-lib:int-add nn 1))
67 ((1 (f2cl-lib:int-add nn 2)))
68 maxa-%offset%)
69 (f2cl-lib:int-add lenaa 1))
70 (setf (f2cl-lib:fref maxa-%data%
71 ((f2cl-lib:int-add nn 2))
72 ((1 (f2cl-lib:int-add nn 2)))
73 maxa-%offset%)
74 (f2cl-lib:int-sub (f2cl-lib:int-add lenaa nn 3) k))
75 (mfacds nn
76 (f2cl-lib:array-slice work-%data%
77 double-float
78 (n5p6)
79 ((1
80 (f2cl-lib:int-add
81 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
82 lenaa
84 1)))
85 work-%offset%)
86 lenaa maxa)
87 (dcopy nn pp 1 work 1)
88 (if (< k np1)
89 (setf (f2cl-lib:fref work-%data%
90 (k)
91 ((1
92 (f2cl-lib:int-add
93 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
94 lenaa
96 1)))
97 work-%offset%)
99 (f2cl-lib:fref work-%data%
102 (f2cl-lib:int-add
103 (f2cl-lib:int-mul 5
104 (f2cl-lib:int-add nn 1))
105 lenaa
107 1)))
108 work-%offset%)
109 1.0)))
110 (setf unrm (dnrm2 nn work 1))
111 (setf imax (f2cl-lib:int-mul 10 np1))
112 (setf stillu f2cl-lib:%true%)
113 (setf stillb f2cl-lib:%true%)
114 (setf ztol (* 100.0f0 (f2cl-lib:d1mach 4)))
115 (setf rbtol (* ztol (abs startk)))
116 (setf rutol (* ztol unrm))
117 (multds
118 (f2cl-lib:array-slice work-%data%
119 double-float
120 (n3p4)
122 (f2cl-lib:int-add
123 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
124 lenaa
126 1)))
127 work-%offset%)
129 (f2cl-lib:array-slice work-%data%
130 double-float
131 (np2)
133 (f2cl-lib:int-add
134 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
135 lenaa
137 1)))
138 work-%offset%)
139 maxa nn lenaa)
140 (setf (f2cl-lib:fref work-%data%
141 ((f2cl-lib:int-add n3p4 nn))
143 (f2cl-lib:int-add
144 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
145 lenaa
147 1)))
148 work-%offset%)
149 (f2cl-lib:fref work-%data%
150 ((f2cl-lib:int-sub (f2cl-lib:int-add np2 k) 1))
152 (f2cl-lib:int-add
153 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
154 lenaa
156 1)))
157 work-%offset%))
158 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
159 (if (< k np1)
160 (setf (f2cl-lib:fref work-%data%
161 (ind)
163 (f2cl-lib:int-add
164 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
165 lenaa
167 1)))
168 work-%offset%)
170 (f2cl-lib:fref work-%data%
171 (ind)
173 (f2cl-lib:int-add
174 (f2cl-lib:int-mul 5
175 (f2cl-lib:int-add nn 1))
176 lenaa
178 1)))
179 work-%offset%)
180 (f2cl-lib:fref work-%data%
181 ((f2cl-lib:int-add np2 nn))
183 (f2cl-lib:int-add
184 (f2cl-lib:int-mul 5
185 (f2cl-lib:int-add nn 1))
186 lenaa
188 1)))
189 work-%offset%))))
190 (dscal np1 -1.0
191 (f2cl-lib:array-slice work-%data%
192 double-float
193 (n3p4)
195 (f2cl-lib:int-add
196 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
197 lenaa
199 1)))
200 work-%offset%)
202 (daxpy nn -1.0 pp 1
203 (f2cl-lib:array-slice work-%data%
204 double-float
205 (n3p4)
207 (f2cl-lib:int-add
208 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
209 lenaa
211 1)))
212 work-%offset%)
214 (if (< k np1)
215 (setf (f2cl-lib:fref work-%data%
216 (ind)
218 (f2cl-lib:int-add
219 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
220 lenaa
222 1)))
223 work-%offset%)
225 (f2cl-lib:fref work-%data%
226 (ind)
228 (f2cl-lib:int-add
229 (f2cl-lib:int-mul 5
230 (f2cl-lib:int-add nn 1))
231 lenaa
233 1)))
234 work-%offset%)
235 1.0)))
236 (qimuds
237 (f2cl-lib:array-slice work-%data%
238 double-float
239 (n5p6)
241 (f2cl-lib:int-add
242 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
243 lenaa
245 1)))
246 work-%offset%)
247 (f2cl-lib:array-slice work-%data%
248 double-float
249 (n3p4)
251 (f2cl-lib:int-add
252 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
253 lenaa
255 1)))
256 work-%offset%)
257 maxa nn lenaa)
258 (dcopy np1
259 (f2cl-lib:array-slice work-%data%
260 double-float
261 (n3p4)
263 (f2cl-lib:int-add
264 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
265 lenaa
267 1)))
268 work-%offset%)
269 1 work 1)
270 (qimuds
271 (f2cl-lib:array-slice work-%data%
272 double-float
273 (n5p6)
275 (f2cl-lib:int-add
276 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
277 lenaa
279 1)))
280 work-%offset%)
281 work maxa nn lenaa)
282 (multds
283 (f2cl-lib:array-slice work-%data%
284 double-float
285 (n4p5)
287 (f2cl-lib:int-add
288 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
289 lenaa
291 1)))
292 work-%offset%)
293 aa work maxa nn lenaa)
294 (setf (f2cl-lib:fref work-%data%
295 ((f2cl-lib:int-add n4p5 nn))
297 (f2cl-lib:int-add
298 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
299 lenaa
301 1)))
302 work-%offset%)
303 (f2cl-lib:fref work-%data%
306 (f2cl-lib:int-add
307 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
308 lenaa
310 1)))
311 work-%offset%))
312 (if (< k np1)
313 (setf (f2cl-lib:fref work-%data%
314 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
316 (f2cl-lib:int-add
317 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
318 lenaa
320 1)))
321 work-%offset%)
323 (f2cl-lib:fref work-%data%
324 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
327 (f2cl-lib:int-add
328 (f2cl-lib:int-mul 5
329 (f2cl-lib:int-add nn 1))
330 lenaa
332 1)))
333 work-%offset%)
334 (f2cl-lib:fref work-%data%
335 (np1)
337 (f2cl-lib:int-add
338 (f2cl-lib:int-mul 5
339 (f2cl-lib:int-add nn 1))
340 lenaa
342 1)))
343 work-%offset%))))
344 (setf runprd
345 (ddot np1
346 (f2cl-lib:array-slice work-%data%
347 double-float
348 (n3p4)
350 (f2cl-lib:int-add
351 (f2cl-lib:int-mul 5
352 (f2cl-lib:int-add nn
354 lenaa
356 1)))
357 work-%offset%)
359 (f2cl-lib:array-slice work-%data%
360 double-float
361 (n3p4)
363 (f2cl-lib:int-add
364 (f2cl-lib:int-mul 5
365 (f2cl-lib:int-add nn
367 lenaa
369 1)))
370 work-%offset%)
372 (setf punprd
373 (ddot np1
374 (f2cl-lib:array-slice work-%data%
375 double-float
376 (n4p5)
378 (f2cl-lib:int-add
379 (f2cl-lib:int-mul 5
380 (f2cl-lib:int-add nn
382 lenaa
384 1)))
385 work-%offset%)
387 (f2cl-lib:array-slice work-%data%
388 double-float
389 (n4p5)
391 (f2cl-lib:int-add
392 (f2cl-lib:int-mul 5
393 (f2cl-lib:int-add nn
395 lenaa
397 1)))
398 work-%offset%)
400 (setf j 1)
401 label100
402 (if (not (and stillu (<= j imax))) (go label200))
403 (cond
404 ((> (f2cl-lib:fsqrt runprd) rutol)
405 (cond
406 ((= punprd 0.0f0)
407 (multds
408 (f2cl-lib:array-slice work-%data%
409 double-float
410 (n3p4)
412 (f2cl-lib:int-add
413 (f2cl-lib:int-mul 5
414 (f2cl-lib:int-add nn
416 lenaa
418 1)))
419 work-%offset%)
421 (f2cl-lib:array-slice work-%data%
422 double-float
423 (np2)
425 (f2cl-lib:int-add
426 (f2cl-lib:int-mul 5
427 (f2cl-lib:int-add nn
429 lenaa
431 1)))
432 work-%offset%)
433 maxa nn lenaa)
434 (setf (f2cl-lib:fref work-%data%
435 ((f2cl-lib:int-add n3p4 nn))
437 (f2cl-lib:int-add
438 (f2cl-lib:int-mul 5
439 (f2cl-lib:int-add nn 1))
440 lenaa
442 1)))
443 work-%offset%)
444 (f2cl-lib:fref work-%data%
445 ((f2cl-lib:int-sub (f2cl-lib:int-add np2 k)
448 (f2cl-lib:int-add
449 (f2cl-lib:int-mul 5
450 (f2cl-lib:int-add nn
452 lenaa
454 1)))
455 work-%offset%))
456 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
457 (if (< k np1)
458 (setf (f2cl-lib:fref work-%data%
459 (ind)
461 (f2cl-lib:int-add
462 (f2cl-lib:int-mul 5
463 (f2cl-lib:int-add nn
465 lenaa
467 1)))
468 work-%offset%)
470 (f2cl-lib:fref work-%data%
471 (ind)
473 (f2cl-lib:int-add
474 (f2cl-lib:int-mul 5
475 (f2cl-lib:int-add
478 lenaa
480 1)))
481 work-%offset%)
482 (f2cl-lib:fref work-%data%
483 ((f2cl-lib:int-add np2 nn))
485 (f2cl-lib:int-add
486 (f2cl-lib:int-mul 5
487 (f2cl-lib:int-add
490 lenaa
492 1)))
493 work-%offset%))))
494 (dscal np1 -1.0
495 (f2cl-lib:array-slice work-%data%
496 double-float
497 (n3p4)
499 (f2cl-lib:int-add
500 (f2cl-lib:int-mul 5
501 (f2cl-lib:int-add nn
503 lenaa
505 1)))
506 work-%offset%)
508 (daxpy nn -1.0 pp 1
509 (f2cl-lib:array-slice work-%data%
510 double-float
511 (n3p4)
513 (f2cl-lib:int-add
514 (f2cl-lib:int-mul 5
515 (f2cl-lib:int-add nn
517 lenaa
519 1)))
520 work-%offset%)
522 (if (< k np1)
523 (setf (f2cl-lib:fref work-%data%
524 ((f2cl-lib:int-sub
525 (f2cl-lib:int-add n3p4 k)
528 (f2cl-lib:int-add
529 (f2cl-lib:int-mul 5
530 (f2cl-lib:int-add nn
532 lenaa
534 1)))
535 work-%offset%)
537 (f2cl-lib:fref work-%data%
538 ((f2cl-lib:int-sub
539 (f2cl-lib:int-add n3p4 k)
542 (f2cl-lib:int-add
543 (f2cl-lib:int-mul 5
544 (f2cl-lib:int-add
547 lenaa
549 1)))
550 work-%offset%)
551 1.0)))
552 (qimuds
553 (f2cl-lib:array-slice work-%data%
554 double-float
555 (n5p6)
557 (f2cl-lib:int-add
558 (f2cl-lib:int-mul 5
559 (f2cl-lib:int-add nn
561 lenaa
563 1)))
564 work-%offset%)
565 (f2cl-lib:array-slice work-%data%
566 double-float
567 (n3p4)
569 (f2cl-lib:int-add
570 (f2cl-lib:int-mul 5
571 (f2cl-lib:int-add nn
573 lenaa
575 1)))
576 work-%offset%)
577 maxa nn lenaa)
578 (dcopy np1
579 (f2cl-lib:array-slice work-%data%
580 double-float
581 (n3p4)
583 (f2cl-lib:int-add
584 (f2cl-lib:int-mul 5
585 (f2cl-lib:int-add nn
587 lenaa
589 1)))
590 work-%offset%)
591 1 work 1)
592 (qimuds
593 (f2cl-lib:array-slice work-%data%
594 double-float
595 (n5p6)
597 (f2cl-lib:int-add
598 (f2cl-lib:int-mul 5
599 (f2cl-lib:int-add nn
601 lenaa
603 1)))
604 work-%offset%)
605 work maxa nn lenaa)
606 (multds
607 (f2cl-lib:array-slice work-%data%
608 double-float
609 (n4p5)
611 (f2cl-lib:int-add
612 (f2cl-lib:int-mul 5
613 (f2cl-lib:int-add nn
615 lenaa
617 1)))
618 work-%offset%)
619 aa work maxa nn lenaa)
620 (setf (f2cl-lib:fref work-%data%
621 ((f2cl-lib:int-add n4p5 nn))
623 (f2cl-lib:int-add
624 (f2cl-lib:int-mul 5
625 (f2cl-lib:int-add nn 1))
626 lenaa
628 1)))
629 work-%offset%)
630 (f2cl-lib:fref work-%data%
633 (f2cl-lib:int-add
634 (f2cl-lib:int-mul 5
635 (f2cl-lib:int-add nn
637 lenaa
639 1)))
640 work-%offset%))
641 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
642 (if (< k np1)
643 (setf (f2cl-lib:fref work-%data%
644 (ind)
646 (f2cl-lib:int-add
647 (f2cl-lib:int-mul 5
648 (f2cl-lib:int-add nn
650 lenaa
652 1)))
653 work-%offset%)
655 (f2cl-lib:fref work-%data%
656 (ind)
658 (f2cl-lib:int-add
659 (f2cl-lib:int-mul 5
660 (f2cl-lib:int-add
663 lenaa
665 1)))
666 work-%offset%)
667 (f2cl-lib:fref work-%data%
668 (np1)
670 (f2cl-lib:int-add
671 (f2cl-lib:int-mul 5
672 (f2cl-lib:int-add
675 lenaa
677 1)))
678 work-%offset%))))
679 (setf runprd
680 (ddot np1
681 (f2cl-lib:array-slice work-%data%
682 double-float
683 (n3p4)
685 (f2cl-lib:int-add
686 (f2cl-lib:int-mul 5
687 (f2cl-lib:int-add
690 lenaa
692 1)))
693 work-%offset%)
695 (f2cl-lib:array-slice work-%data%
696 double-float
697 (n3p4)
699 (f2cl-lib:int-add
700 (f2cl-lib:int-mul 5
701 (f2cl-lib:int-add
704 lenaa
706 1)))
707 work-%offset%)
709 (setf punprd
710 (ddot np1
711 (f2cl-lib:array-slice work-%data%
712 double-float
713 (n4p5)
715 (f2cl-lib:int-add
716 (f2cl-lib:int-mul 5
717 (f2cl-lib:int-add
720 lenaa
722 1)))
723 work-%offset%)
725 (f2cl-lib:array-slice work-%data%
726 double-float
727 (n4p5)
729 (f2cl-lib:int-add
730 (f2cl-lib:int-mul 5
731 (f2cl-lib:int-add
734 lenaa
736 1)))
737 work-%offset%)
739 (cond
740 ((<= (f2cl-lib:fsqrt runprd) rutol)
741 (setf stillu f2cl-lib:%false%)))))
742 (cond
743 (stillu
744 (setf au (/ runprd punprd))
745 (dcopy np1
746 (f2cl-lib:array-slice work-%data%
747 double-float
748 (np2)
750 (f2cl-lib:int-add
751 (f2cl-lib:int-mul 5
752 (f2cl-lib:int-add nn
754 lenaa
756 1)))
757 work-%offset%)
758 1 work 1)
759 (daxpy np1 au
760 (f2cl-lib:array-slice work-%data%
761 double-float
762 (n4p5)
764 (f2cl-lib:int-add
765 (f2cl-lib:int-mul 5
766 (f2cl-lib:int-add nn
768 lenaa
770 1)))
771 work-%offset%)
773 (f2cl-lib:array-slice work-%data%
774 double-float
775 (np2)
777 (f2cl-lib:int-add
778 (f2cl-lib:int-mul 5
779 (f2cl-lib:int-add nn
781 lenaa
783 1)))
784 work-%offset%)
786 (daxpy np1 -1.0
787 (f2cl-lib:array-slice work-%data%
788 double-float
789 (np2)
791 (f2cl-lib:int-add
792 (f2cl-lib:int-mul 5
793 (f2cl-lib:int-add nn
795 lenaa
797 1)))
798 work-%offset%)
799 1 work 1)
800 (setf zlen
801 (dnrm2 np1
802 (f2cl-lib:array-slice work-%data%
803 double-float
804 (np2)
806 (f2cl-lib:int-add
807 (f2cl-lib:int-mul 5
808 (f2cl-lib:int-add
811 lenaa
813 1)))
814 work-%offset%)
816 (setf dznrm (dnrm2 np1 work 1))
817 (if (< (/ dznrm zlen) ztol) (setf stillu f2cl-lib:%false%)))))
819 (setf stillu f2cl-lib:%false%)))
820 (cond
821 (stillu
822 (multds work aa
823 (f2cl-lib:array-slice work-%data%
824 double-float
825 (n4p5)
827 (f2cl-lib:int-add
828 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
829 lenaa
831 1)))
832 work-%offset%)
833 maxa nn lenaa)
834 (setf (f2cl-lib:fref work-%data%
835 (np1)
837 (f2cl-lib:int-add
838 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
839 lenaa
841 1)))
842 work-%offset%)
843 (f2cl-lib:fref work-%data%
844 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
847 (f2cl-lib:int-add
848 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
849 lenaa
851 1)))
852 work-%offset%))
853 (if (< k np1)
854 (setf (f2cl-lib:fref work-%data%
857 (f2cl-lib:int-add
858 (f2cl-lib:int-mul 5
859 (f2cl-lib:int-add nn 1))
860 lenaa
862 1)))
863 work-%offset%)
865 (f2cl-lib:fref work-%data%
868 (f2cl-lib:int-add
869 (f2cl-lib:int-mul 5
870 (f2cl-lib:int-add nn
872 lenaa
874 1)))
875 work-%offset%)
876 (f2cl-lib:fref work-%data%
877 ((f2cl-lib:int-add n4p5 nn))
879 (f2cl-lib:int-add
880 (f2cl-lib:int-mul 5
881 (f2cl-lib:int-add nn
883 lenaa
885 1)))
886 work-%offset%))))
887 (qimuds
888 (f2cl-lib:array-slice work-%data%
889 double-float
890 (n5p6)
892 (f2cl-lib:int-add
893 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
894 lenaa
896 1)))
897 work-%offset%)
898 work maxa nn lenaa)
899 (daxpy np1 (- au) work 1
900 (f2cl-lib:array-slice work-%data%
901 double-float
902 (n3p4)
904 (f2cl-lib:int-add
905 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
906 lenaa
908 1)))
909 work-%offset%)
911 (setf rnprd
912 (ddot np1
913 (f2cl-lib:array-slice work-%data%
914 double-float
915 (n3p4)
917 (f2cl-lib:int-add
918 (f2cl-lib:int-mul 5
919 (f2cl-lib:int-add
922 lenaa
924 1)))
925 work-%offset%)
927 (f2cl-lib:array-slice work-%data%
928 double-float
929 (n3p4)
931 (f2cl-lib:int-add
932 (f2cl-lib:int-mul 5
933 (f2cl-lib:int-add
936 lenaa
938 1)))
939 work-%offset%)
941 (setf bu (/ rnprd runprd))
942 (setf runprd rnprd)
943 (dcopy np1
944 (f2cl-lib:array-slice work-%data%
945 double-float
946 (n3p4)
948 (f2cl-lib:int-add
949 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
950 lenaa
952 1)))
953 work-%offset%)
954 1 work 1)
955 (qimuds
956 (f2cl-lib:array-slice work-%data%
957 double-float
958 (n5p6)
960 (f2cl-lib:int-add
961 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
962 lenaa
964 1)))
965 work-%offset%)
966 work maxa nn lenaa)
967 (multds start aa work maxa nn lenaa)
968 (setf (f2cl-lib:fref start-%data%
969 (np1)
970 ((1 (f2cl-lib:int-add nn 1)))
971 start-%offset%)
972 (f2cl-lib:fref work-%data%
975 (f2cl-lib:int-add
976 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
977 lenaa
979 1)))
980 work-%offset%))
981 (if (< k np1)
982 (setf (f2cl-lib:fref start-%data%
984 ((1 (f2cl-lib:int-add nn 1)))
985 start-%offset%)
987 (f2cl-lib:fref start-%data%
989 ((1 (f2cl-lib:int-add nn 1)))
990 start-%offset%)
991 (f2cl-lib:fref work-%data%
992 (np1)
994 (f2cl-lib:int-add
995 (f2cl-lib:int-mul 5
996 (f2cl-lib:int-add nn
998 lenaa
1000 1)))
1001 work-%offset%))))
1002 (daxpy np1 bu
1003 (f2cl-lib:array-slice work-%data%
1004 double-float
1005 (n4p5)
1007 (f2cl-lib:int-add
1008 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1009 lenaa
1011 1)))
1012 work-%offset%)
1013 1 start 1)
1014 (dcopy np1 start 1
1015 (f2cl-lib:array-slice work-%data%
1016 double-float
1017 (n4p5)
1019 (f2cl-lib:int-add
1020 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1021 lenaa
1023 1)))
1024 work-%offset%)
1026 (setf punprd
1027 (ddot np1
1028 (f2cl-lib:array-slice work-%data%
1029 double-float
1030 (n4p5)
1032 (f2cl-lib:int-add
1033 (f2cl-lib:int-mul 5
1034 (f2cl-lib:int-add
1037 lenaa
1039 1)))
1040 work-%offset%)
1042 (f2cl-lib:array-slice work-%data%
1043 double-float
1044 (n4p5)
1046 (f2cl-lib:int-add
1047 (f2cl-lib:int-mul 5
1048 (f2cl-lib:int-add
1051 lenaa
1053 1)))
1054 work-%offset%)
1055 1))))
1056 (setf j (f2cl-lib:int-add j 1))
1057 (go label100)
1058 label200
1059 (cond
1060 ((> j imax)
1061 (setf iflag 4)
1062 (go end_label)))
1063 (multds
1064 (f2cl-lib:array-slice work-%data%
1065 double-float
1066 (n3p4)
1068 (f2cl-lib:int-add
1069 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1070 lenaa
1072 1)))
1073 work-%offset%)
1075 (f2cl-lib:array-slice work-%data%
1076 double-float
1077 (n2p3)
1079 (f2cl-lib:int-add
1080 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1081 lenaa
1083 1)))
1084 work-%offset%)
1085 maxa nn lenaa)
1086 (setf (f2cl-lib:fref work-%data%
1087 ((f2cl-lib:int-add n3p4 nn))
1089 (f2cl-lib:int-add
1090 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1091 lenaa
1093 1)))
1094 work-%offset%)
1095 (f2cl-lib:fref work-%data%
1096 ((f2cl-lib:int-sub (f2cl-lib:int-add n2p3 k) 1))
1098 (f2cl-lib:int-add
1099 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1100 lenaa
1102 1)))
1103 work-%offset%))
1104 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
1105 (if (< k np1)
1106 (setf (f2cl-lib:fref work-%data%
1107 (ind)
1109 (f2cl-lib:int-add
1110 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1111 lenaa
1113 1)))
1114 work-%offset%)
1116 (f2cl-lib:fref work-%data%
1117 (ind)
1119 (f2cl-lib:int-add
1120 (f2cl-lib:int-mul 5
1121 (f2cl-lib:int-add nn 1))
1122 lenaa
1124 1)))
1125 work-%offset%)
1126 (f2cl-lib:fref work-%data%
1127 ((f2cl-lib:int-add n2p3 nn))
1129 (f2cl-lib:int-add
1130 (f2cl-lib:int-mul 5
1131 (f2cl-lib:int-add nn 1))
1132 lenaa
1134 1)))
1135 work-%offset%))))
1136 (dscal np1 -1.0
1137 (f2cl-lib:array-slice work-%data%
1138 double-float
1139 (n3p4)
1141 (f2cl-lib:int-add
1142 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1143 lenaa
1145 1)))
1146 work-%offset%)
1148 (setf (f2cl-lib:fref work-%data%
1149 ((f2cl-lib:int-add n3p4 nn))
1151 (f2cl-lib:int-add
1152 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1153 lenaa
1155 1)))
1156 work-%offset%)
1157 (+ startk
1158 (f2cl-lib:fref work-%data%
1159 ((f2cl-lib:int-add n3p4 nn))
1161 (f2cl-lib:int-add
1162 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1163 lenaa
1165 1)))
1166 work-%offset%)))
1167 (qimuds
1168 (f2cl-lib:array-slice work-%data%
1169 double-float
1170 (n5p6)
1172 (f2cl-lib:int-add
1173 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1174 lenaa
1176 1)))
1177 work-%offset%)
1178 (f2cl-lib:array-slice work-%data%
1179 double-float
1180 (n3p4)
1182 (f2cl-lib:int-add
1183 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1184 lenaa
1186 1)))
1187 work-%offset%)
1188 maxa nn lenaa)
1189 (dcopy np1
1190 (f2cl-lib:array-slice work-%data%
1191 double-float
1192 (n3p4)
1194 (f2cl-lib:int-add
1195 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1196 lenaa
1198 1)))
1199 work-%offset%)
1200 1 work 1)
1201 (qimuds
1202 (f2cl-lib:array-slice work-%data%
1203 double-float
1204 (n5p6)
1206 (f2cl-lib:int-add
1207 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1208 lenaa
1210 1)))
1211 work-%offset%)
1212 work maxa nn lenaa)
1213 (multds
1214 (f2cl-lib:array-slice work-%data%
1215 double-float
1216 (n4p5)
1218 (f2cl-lib:int-add
1219 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1220 lenaa
1222 1)))
1223 work-%offset%)
1224 aa work maxa nn lenaa)
1225 (setf (f2cl-lib:fref work-%data%
1226 ((f2cl-lib:int-add n4p5 nn))
1228 (f2cl-lib:int-add
1229 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1230 lenaa
1232 1)))
1233 work-%offset%)
1234 (f2cl-lib:fref work-%data%
1237 (f2cl-lib:int-add
1238 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1239 lenaa
1241 1)))
1242 work-%offset%))
1243 (if (< k np1)
1244 (setf (f2cl-lib:fref work-%data%
1245 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
1247 (f2cl-lib:int-add
1248 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1249 lenaa
1251 1)))
1252 work-%offset%)
1254 (f2cl-lib:fref work-%data%
1255 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
1258 (f2cl-lib:int-add
1259 (f2cl-lib:int-mul 5
1260 (f2cl-lib:int-add nn 1))
1261 lenaa
1263 1)))
1264 work-%offset%)
1265 (f2cl-lib:fref work-%data%
1266 (np1)
1268 (f2cl-lib:int-add
1269 (f2cl-lib:int-mul 5
1270 (f2cl-lib:int-add nn 1))
1271 lenaa
1273 1)))
1274 work-%offset%))))
1275 (setf rbnprd
1276 (ddot np1
1277 (f2cl-lib:array-slice work-%data%
1278 double-float
1279 (n3p4)
1281 (f2cl-lib:int-add
1282 (f2cl-lib:int-mul 5
1283 (f2cl-lib:int-add nn
1285 lenaa
1287 1)))
1288 work-%offset%)
1290 (f2cl-lib:array-slice work-%data%
1291 double-float
1292 (n3p4)
1294 (f2cl-lib:int-add
1295 (f2cl-lib:int-mul 5
1296 (f2cl-lib:int-add nn
1298 lenaa
1300 1)))
1301 work-%offset%)
1303 (setf pbnprd
1304 (ddot np1
1305 (f2cl-lib:array-slice work-%data%
1306 double-float
1307 (n4p5)
1309 (f2cl-lib:int-add
1310 (f2cl-lib:int-mul 5
1311 (f2cl-lib:int-add nn
1313 lenaa
1315 1)))
1316 work-%offset%)
1318 (f2cl-lib:array-slice work-%data%
1319 double-float
1320 (n4p5)
1322 (f2cl-lib:int-add
1323 (f2cl-lib:int-mul 5
1324 (f2cl-lib:int-add nn
1326 lenaa
1328 1)))
1329 work-%offset%)
1331 (setf j 1)
1332 label300
1333 (if (not (and stillb (<= j imax))) (go label400))
1334 (cond
1335 ((> (f2cl-lib:fsqrt rbnprd) rbtol)
1336 (cond
1337 ((= pbnprd 0.0f0)
1338 (multds
1339 (f2cl-lib:array-slice work-%data%
1340 double-float
1341 (n3p4)
1343 (f2cl-lib:int-add
1344 (f2cl-lib:int-mul 5
1345 (f2cl-lib:int-add nn
1347 lenaa
1349 1)))
1350 work-%offset%)
1352 (f2cl-lib:array-slice work-%data%
1353 double-float
1354 (n2p3)
1356 (f2cl-lib:int-add
1357 (f2cl-lib:int-mul 5
1358 (f2cl-lib:int-add nn
1360 lenaa
1362 1)))
1363 work-%offset%)
1364 maxa nn lenaa)
1365 (setf (f2cl-lib:fref work-%data%
1366 ((f2cl-lib:int-add n3p4 nn))
1368 (f2cl-lib:int-add
1369 (f2cl-lib:int-mul 5
1370 (f2cl-lib:int-add nn 1))
1371 lenaa
1373 1)))
1374 work-%offset%)
1375 (f2cl-lib:fref work-%data%
1376 ((f2cl-lib:int-sub (f2cl-lib:int-add n2p3 k)
1379 (f2cl-lib:int-add
1380 (f2cl-lib:int-mul 5
1381 (f2cl-lib:int-add nn
1383 lenaa
1385 1)))
1386 work-%offset%))
1387 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n3p4 k) 1))
1388 (if (< k np1)
1389 (setf (f2cl-lib:fref work-%data%
1390 (ind)
1392 (f2cl-lib:int-add
1393 (f2cl-lib:int-mul 5
1394 (f2cl-lib:int-add nn
1396 lenaa
1398 1)))
1399 work-%offset%)
1401 (f2cl-lib:fref work-%data%
1402 (ind)
1404 (f2cl-lib:int-add
1405 (f2cl-lib:int-mul 5
1406 (f2cl-lib:int-add
1409 lenaa
1411 1)))
1412 work-%offset%)
1413 (f2cl-lib:fref work-%data%
1414 ((f2cl-lib:int-add n2p3 nn))
1416 (f2cl-lib:int-add
1417 (f2cl-lib:int-mul 5
1418 (f2cl-lib:int-add
1421 lenaa
1423 1)))
1424 work-%offset%))))
1425 (dscal np1 -1.0
1426 (f2cl-lib:array-slice work-%data%
1427 double-float
1428 (n3p4)
1430 (f2cl-lib:int-add
1431 (f2cl-lib:int-mul 5
1432 (f2cl-lib:int-add nn
1434 lenaa
1436 1)))
1437 work-%offset%)
1439 (setf (f2cl-lib:fref work-%data%
1440 ((f2cl-lib:int-add n3p4 nn))
1442 (f2cl-lib:int-add
1443 (f2cl-lib:int-mul 5
1444 (f2cl-lib:int-add nn 1))
1445 lenaa
1447 1)))
1448 work-%offset%)
1449 (+ startk
1450 (f2cl-lib:fref work-%data%
1451 ((f2cl-lib:int-add n3p4 nn))
1453 (f2cl-lib:int-add
1454 (f2cl-lib:int-mul 5
1455 (f2cl-lib:int-add nn
1457 lenaa
1459 1)))
1460 work-%offset%)))
1461 (qimuds
1462 (f2cl-lib:array-slice work-%data%
1463 double-float
1464 (n5p6)
1466 (f2cl-lib:int-add
1467 (f2cl-lib:int-mul 5
1468 (f2cl-lib:int-add nn
1470 lenaa
1472 1)))
1473 work-%offset%)
1474 (f2cl-lib:array-slice work-%data%
1475 double-float
1476 (n3p4)
1478 (f2cl-lib:int-add
1479 (f2cl-lib:int-mul 5
1480 (f2cl-lib:int-add nn
1482 lenaa
1484 1)))
1485 work-%offset%)
1486 maxa nn lenaa)
1487 (dcopy np1
1488 (f2cl-lib:array-slice work-%data%
1489 double-float
1490 (n3p4)
1492 (f2cl-lib:int-add
1493 (f2cl-lib:int-mul 5
1494 (f2cl-lib:int-add nn
1496 lenaa
1498 1)))
1499 work-%offset%)
1500 1 work 1)
1501 (qimuds
1502 (f2cl-lib:array-slice work-%data%
1503 double-float
1504 (n5p6)
1506 (f2cl-lib:int-add
1507 (f2cl-lib:int-mul 5
1508 (f2cl-lib:int-add nn
1510 lenaa
1512 1)))
1513 work-%offset%)
1514 work maxa nn lenaa)
1515 (multds
1516 (f2cl-lib:array-slice work-%data%
1517 double-float
1518 (n4p5)
1520 (f2cl-lib:int-add
1521 (f2cl-lib:int-mul 5
1522 (f2cl-lib:int-add nn
1524 lenaa
1526 1)))
1527 work-%offset%)
1528 aa work maxa nn lenaa)
1529 (setf (f2cl-lib:fref work-%data%
1530 ((f2cl-lib:int-add n4p5 nn))
1532 (f2cl-lib:int-add
1533 (f2cl-lib:int-mul 5
1534 (f2cl-lib:int-add nn 1))
1535 lenaa
1537 1)))
1538 work-%offset%)
1539 (f2cl-lib:fref work-%data%
1542 (f2cl-lib:int-add
1543 (f2cl-lib:int-mul 5
1544 (f2cl-lib:int-add nn
1546 lenaa
1548 1)))
1549 work-%offset%))
1550 (setf ind (f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k) 1))
1551 (if (< k np1)
1552 (setf (f2cl-lib:fref work-%data%
1553 (ind)
1555 (f2cl-lib:int-add
1556 (f2cl-lib:int-mul 5
1557 (f2cl-lib:int-add nn
1559 lenaa
1561 1)))
1562 work-%offset%)
1564 (f2cl-lib:fref work-%data%
1565 (ind)
1567 (f2cl-lib:int-add
1568 (f2cl-lib:int-mul 5
1569 (f2cl-lib:int-add
1572 lenaa
1574 1)))
1575 work-%offset%)
1576 (f2cl-lib:fref work-%data%
1577 (np1)
1579 (f2cl-lib:int-add
1580 (f2cl-lib:int-mul 5
1581 (f2cl-lib:int-add
1584 lenaa
1586 1)))
1587 work-%offset%))))
1588 (setf rbnprd
1589 (ddot np1
1590 (f2cl-lib:array-slice work-%data%
1591 double-float
1592 (n3p4)
1594 (f2cl-lib:int-add
1595 (f2cl-lib:int-mul 5
1596 (f2cl-lib:int-add
1599 lenaa
1601 1)))
1602 work-%offset%)
1604 (f2cl-lib:array-slice work-%data%
1605 double-float
1606 (n3p4)
1608 (f2cl-lib:int-add
1609 (f2cl-lib:int-mul 5
1610 (f2cl-lib:int-add
1613 lenaa
1615 1)))
1616 work-%offset%)
1618 (setf pbnprd
1619 (ddot np1
1620 (f2cl-lib:array-slice work-%data%
1621 double-float
1622 (n4p5)
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 (n4p5)
1638 (f2cl-lib:int-add
1639 (f2cl-lib:int-mul 5
1640 (f2cl-lib:int-add
1643 lenaa
1645 1)))
1646 work-%offset%)
1648 (cond
1649 ((<= (f2cl-lib:fsqrt rbnprd) rbtol)
1650 (setf stillb f2cl-lib:%false%)))))
1651 (cond
1652 (stillb
1653 (setf ab (/ rbnprd pbnprd))
1654 (dcopy np1
1655 (f2cl-lib:array-slice work-%data%
1656 double-float
1657 (n2p3)
1659 (f2cl-lib:int-add
1660 (f2cl-lib:int-mul 5
1661 (f2cl-lib:int-add nn
1663 lenaa
1665 1)))
1666 work-%offset%)
1667 1 work 1)
1668 (daxpy np1 ab
1669 (f2cl-lib:array-slice work-%data%
1670 double-float
1671 (n4p5)
1673 (f2cl-lib:int-add
1674 (f2cl-lib:int-mul 5
1675 (f2cl-lib:int-add nn
1677 lenaa
1679 1)))
1680 work-%offset%)
1682 (f2cl-lib:array-slice work-%data%
1683 double-float
1684 (n2p3)
1686 (f2cl-lib:int-add
1687 (f2cl-lib:int-mul 5
1688 (f2cl-lib:int-add nn
1690 lenaa
1692 1)))
1693 work-%offset%)
1695 (daxpy np1 -1.0
1696 (f2cl-lib:array-slice work-%data%
1697 double-float
1698 (n2p3)
1700 (f2cl-lib:int-add
1701 (f2cl-lib:int-mul 5
1702 (f2cl-lib:int-add nn
1704 lenaa
1706 1)))
1707 work-%offset%)
1708 1 work 1)
1709 (setf zlen
1710 (dnrm2 np1
1711 (f2cl-lib:array-slice work-%data%
1712 double-float
1713 (n2p3)
1715 (f2cl-lib:int-add
1716 (f2cl-lib:int-mul 5
1717 (f2cl-lib:int-add
1720 lenaa
1722 1)))
1723 work-%offset%)
1725 (setf dznrm (dnrm2 np1 work 1))
1726 (if (< (/ dznrm zlen) ztol) (setf stillb f2cl-lib:%false%)))))
1728 (setf stillb f2cl-lib:%false%)))
1729 (cond
1730 (stillb
1731 (multds work aa
1732 (f2cl-lib:array-slice work-%data%
1733 double-float
1734 (n4p5)
1736 (f2cl-lib:int-add
1737 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1738 lenaa
1740 1)))
1741 work-%offset%)
1742 maxa nn lenaa)
1743 (setf (f2cl-lib:fref work-%data%
1744 (np1)
1746 (f2cl-lib:int-add
1747 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1748 lenaa
1750 1)))
1751 work-%offset%)
1752 (f2cl-lib:fref work-%data%
1753 ((f2cl-lib:int-sub (f2cl-lib:int-add n4p5 k)
1756 (f2cl-lib:int-add
1757 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1758 lenaa
1760 1)))
1761 work-%offset%))
1762 (if (< k np1)
1763 (setf (f2cl-lib:fref work-%data%
1766 (f2cl-lib:int-add
1767 (f2cl-lib:int-mul 5
1768 (f2cl-lib:int-add nn 1))
1769 lenaa
1771 1)))
1772 work-%offset%)
1774 (f2cl-lib:fref work-%data%
1777 (f2cl-lib:int-add
1778 (f2cl-lib:int-mul 5
1779 (f2cl-lib:int-add nn
1781 lenaa
1783 1)))
1784 work-%offset%)
1785 (f2cl-lib:fref work-%data%
1786 ((f2cl-lib:int-add n4p5 nn))
1788 (f2cl-lib:int-add
1789 (f2cl-lib:int-mul 5
1790 (f2cl-lib:int-add nn
1792 lenaa
1794 1)))
1795 work-%offset%))))
1796 (qimuds
1797 (f2cl-lib:array-slice work-%data%
1798 double-float
1799 (n5p6)
1801 (f2cl-lib:int-add
1802 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1803 lenaa
1805 1)))
1806 work-%offset%)
1807 work maxa nn lenaa)
1808 (daxpy np1 (- ab) work 1
1809 (f2cl-lib:array-slice work-%data%
1810 double-float
1811 (n3p4)
1813 (f2cl-lib:int-add
1814 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1815 lenaa
1817 1)))
1818 work-%offset%)
1820 (setf rnprd
1821 (ddot np1
1822 (f2cl-lib:array-slice work-%data%
1823 double-float
1824 (n3p4)
1826 (f2cl-lib:int-add
1827 (f2cl-lib:int-mul 5
1828 (f2cl-lib:int-add
1831 lenaa
1833 1)))
1834 work-%offset%)
1836 (f2cl-lib:array-slice work-%data%
1837 double-float
1838 (n3p4)
1840 (f2cl-lib:int-add
1841 (f2cl-lib:int-mul 5
1842 (f2cl-lib:int-add
1845 lenaa
1847 1)))
1848 work-%offset%)
1850 (setf bb (/ rnprd rbnprd))
1851 (setf rbnprd rnprd)
1852 (dcopy np1
1853 (f2cl-lib:array-slice work-%data%
1854 double-float
1855 (n3p4)
1857 (f2cl-lib:int-add
1858 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1859 lenaa
1861 1)))
1862 work-%offset%)
1863 1 work 1)
1864 (qimuds
1865 (f2cl-lib:array-slice work-%data%
1866 double-float
1867 (n5p6)
1869 (f2cl-lib:int-add
1870 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1871 lenaa
1873 1)))
1874 work-%offset%)
1875 work maxa nn lenaa)
1876 (multds start aa work maxa nn lenaa)
1877 (setf (f2cl-lib:fref start-%data%
1878 (np1)
1879 ((1 (f2cl-lib:int-add nn 1)))
1880 start-%offset%)
1881 (f2cl-lib:fref work-%data%
1884 (f2cl-lib:int-add
1885 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1886 lenaa
1888 1)))
1889 work-%offset%))
1890 (if (< k np1)
1891 (setf (f2cl-lib:fref start-%data%
1893 ((1 (f2cl-lib:int-add nn 1)))
1894 start-%offset%)
1896 (f2cl-lib:fref start-%data%
1898 ((1 (f2cl-lib:int-add nn 1)))
1899 start-%offset%)
1900 (f2cl-lib:fref work-%data%
1901 (np1)
1903 (f2cl-lib:int-add
1904 (f2cl-lib:int-mul 5
1905 (f2cl-lib:int-add nn
1907 lenaa
1909 1)))
1910 work-%offset%))))
1911 (daxpy np1 bb
1912 (f2cl-lib:array-slice work-%data%
1913 double-float
1914 (n4p5)
1916 (f2cl-lib:int-add
1917 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1918 lenaa
1920 1)))
1921 work-%offset%)
1922 1 start 1)
1923 (dcopy np1 start 1
1924 (f2cl-lib:array-slice work-%data%
1925 double-float
1926 (n4p5)
1928 (f2cl-lib:int-add
1929 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1930 lenaa
1932 1)))
1933 work-%offset%)
1935 (setf pbnprd
1936 (ddot np1
1937 (f2cl-lib:array-slice work-%data%
1938 double-float
1939 (n4p5)
1941 (f2cl-lib:int-add
1942 (f2cl-lib:int-mul 5
1943 (f2cl-lib:int-add
1946 lenaa
1948 1)))
1949 work-%offset%)
1951 (f2cl-lib:array-slice work-%data%
1952 double-float
1953 (n4p5)
1955 (f2cl-lib:int-add
1956 (f2cl-lib:int-mul 5
1957 (f2cl-lib:int-add
1960 lenaa
1962 1)))
1963 work-%offset%)
1964 1))))
1965 (setf j (f2cl-lib:int-add j 1))
1966 (go label300)
1967 label400
1968 (cond
1969 ((> j imax)
1970 (setf iflag 4)
1971 (go end_label)))
1972 (setf temp
1975 (f2cl-lib:fref work-%data%
1976 ((f2cl-lib:int-add n2p3 nn))
1978 (f2cl-lib:int-add
1979 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
1980 lenaa
1982 1)))
1983 work-%offset%))
1984 (+ 1.0
1985 (f2cl-lib:fref work-%data%
1986 ((f2cl-lib:int-add np2 nn))
1988 (f2cl-lib:int-add
1989 (f2cl-lib:int-mul 5
1990 (f2cl-lib:int-add nn 1))
1991 lenaa
1993 1)))
1994 work-%offset%))))
1995 (dcopy np1
1996 (f2cl-lib:array-slice work-%data%
1997 double-float
1998 (n2p3)
2000 (f2cl-lib:int-add
2001 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
2002 lenaa
2004 1)))
2005 work-%offset%)
2006 1 start 1)
2007 (daxpy np1 temp
2008 (f2cl-lib:array-slice work-%data%
2009 double-float
2010 (np2)
2012 (f2cl-lib:int-add
2013 (f2cl-lib:int-mul 5 (f2cl-lib:int-add nn 1))
2014 lenaa
2016 1)))
2017 work-%offset%)
2018 1 start 1)
2019 (go end_label)
2020 end_label
2021 (return (values nil nil nil nil nil nil nil iflag)))))
2023 (in-package #:cl-user)
2024 #+#.(cl:if (cl:find-package '#:f2cl) '(and) '(or))
2025 (eval-when (:load-toplevel :compile-toplevel :execute)
2026 (setf (gethash 'fortran-to-lisp::pcgds fortran-to-lisp::*f2cl-function-info*)
2027 (fortran-to-lisp::make-f2cl-finfo
2028 :arg-types '((fortran-to-lisp::integer4) (array double-float (*))
2029 (fortran-to-lisp::integer4)
2030 (array fortran-to-lisp::integer4 (*))
2031 (array double-float (*)) (array double-float (*))
2032 (array double-float (*)) (fortran-to-lisp::integer4))
2033 :return-values '(nil nil nil nil nil nil nil fortran-to-lisp::iflag)
2034 :calls '(fortran-to-lisp::ddot fortran-to-lisp::daxpy
2035 fortran-to-lisp::dscal fortran-to-lisp::dnrm2
2036 fortran-to-lisp::dcopy fortran-to-lisp::idamax
2037 fortran-to-lisp::qimuds fortran-to-lisp::multds
2038 fortran-to-lisp::d1mach fortran-to-lisp::mfacds))))