230{
231
232 integer u1_dim1,
u1_offset,
u2_dim1,
u2_offset,
v1t_dim1,
v1t_offset,
x11_dim1,
x11_offset,
x21_dim1,
x21_offset,
i__1,
i__2,
i__3,
i__4,
i__5,
i__6,
i__7,
i__8,
i__9;
233
234 integer lworkmin,
lworkopt,
i__,
j,
r__,
childinfo,
lorglqmin,
lorgqrmin,
lorglqopt,
lorgqropt,
ib11d,
ib11e,
ib12d,
ib12e,
ib21d,
ib21e,
ib22d,
ib22e,
iphi;
236 extern
241 extern
244 extern
247 extern
250 extern
253 extern int
257 extern
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
300
306 if (*m < 0)
307 {
309 }
311 {
313 }
315 {
317 }
319 {
321 }
322 else
323 {
324
328 {
330 }
332 {
334 }
336 {
338 }
340 {
342 }
343 }
344
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
367 {
369
374
379
384
389
393
398
406 {
407 sorbdb1_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &c__0, &c__0, &c__0, &c__0, &
work[1], & c_n1, &
childinfo);
410 {
414 }
415 else
416 {
420
425 }
426
430
434
439
444 sbbcsd_(
jobu1,
jobu2,
jobv1t,
"N",
"N", m,
p,
q, &
theta[1], &c__0, &
u1[
u1_offset],
ldu1, &
u2[
u2_offset],
ldu2, &
v1t[
v1t_offset],
ldv1t, &c__0, &c__1, &c__0, &c__0, &c__0, & c__0, &c__0, &c__0, &c__0, &c__0, &
work[1], &c_n1, &
childinfo);
446 }
448 {
449 sorbdb2_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &c__0, &c__0, &c__0, &c__0, &
work[1], & c_n1, &
childinfo);
451 if (*
p - 1 >= *m - *
p)
452 {
457
462 }
463 else
464 {
468
473 }
477 sbbcsd_(
jobv1t,
"N",
jobu1,
jobu2,
"T", m,
q,
p, &
theta[1], &c__0, &
v1t[
v1t_offset],
ldv1t, &c__0, &c__1, &
u1[
u1_offset],
ldu1, &
u2[
u2_offset],
ldu2, &c__0, &c__0, &c__0, &c__0, & c__0, &c__0, &c__0, &c__0, &
work[1], &c_n1, &
childinfo);
479 }
480 else if (
r__ == *m - *
p)
481 {
482 sorbdb3_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &c__0, &c__0, &c__0, &c__0, &
work[1], & c_n1, &
childinfo);
484 if (*
p >= *m - *
p - 1)
485 {
489 }
490 else
491 {
496
501 }
507 sbbcsd_(
"N",
jobv1t,
jobu2,
jobu1,
"T", m, &
i__1, &
i__2, &
theta[1] , &c__0, &c__0, &c__1, &
v1t[
v1t_offset],
ldv1t, &
u2[
u2_offset],
ldu2, &
u1[
u1_offset],
ldu1, &c__0, &c__0, & c__0, &c__0, &c__0, &c__0, &c__0, &c__0, &
work[1], &c_n1, &
childinfo);
509 }
510 else
511 {
512 sorbdb4_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &c__0, &c__0, &c__0, &c__0, &c__0, &
work[1], &c_n1, &
childinfo);
515 {
520 }
521 else
522 {
527
532 }
538 sbbcsd_(
jobu2,
jobu1,
"N",
jobv1t,
"N", m, &
i__1, &
i__2, &
theta[1] , &c__0, &
u2[
u2_offset],
ldu2, &
u1[
u1_offset],
ldu1, & c__0, &c__1, &
v1t[
v1t_offset],
ldv1t, &c__0, &c__0, &c__0, &c__0, &c__0, &c__0, &c__0, &c__0, &
work[1], &c_n1, &
childinfo);
540 }
541
546
553 {
555 }
556 }
558 {
561 return 0;
562 }
564 {
565 return 0;
566 }
569
570
572 {
573
574
575 sorbdb1_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &
work[
iphi], &
work[
itaup1], &
work[
itaup2], &
work[
itauq1], &
work[
iorbdb], &
lorbdb, &
childinfo);
576
578 {
581 }
583 {
589 }
591 {
597 {
600 }
608 }
609
610 sbbcsd_(
jobu1,
jobu2,
jobv1t,
"N",
"N", m,
p,
q, &
theta[1], &
work[
iphi], &
u1[
u1_offset],
ldu1, &
u2[
u2_offset],
ldu2, &
v1t[
v1t_offset],
ldv1t, &c__0, &c__1, &
work[
ib11d], &
work[
ib11e], &
work[
ib12d], &
work[
ib12e], &
work[
ib21d], &
work[
ib21e], &
work[
ib22d], &
work[
ib22e], &
work[
ibbcsd], &
lbbcsd, &
childinfo);
611
612
614 {
619 {
621 }
626 {
628 }
632 }
633 }
635 {
636
637
638 sorbdb2_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &
work[
iphi], &
work[
itaup1], &
work[
itaup2], &
work[
itauq1], &
work[
iorbdb], &
lorbdb, &
childinfo);
639
641 {
647 {
650 }
658 }
660 {
666 }
668 {
671 }
672
673 sbbcsd_(
jobv1t,
"N",
jobu1,
jobu2,
"T", m,
q,
p, &
theta[1], &
work[
iphi], &
v1t[
v1t_offset],
ldv1t, &c__0, &c__1, &
u1[
u1_offset],
ldu1, &
u2[
u2_offset],
ldu2, &
work[
ib11d], &
work[
ib11e], &
work[
ib12d], &
work[
ib12e], &
work[
ib21d], &
work[
ib21e], &
work[
ib22d] , &
work[
ib22e], &
work[
ibbcsd], &
lbbcsd, &
childinfo);
674
675
677 {
682 {
684 }
689 {
691 }
695 }
696 }
697 else if (
r__ == *m - *
p)
698 {
699
700
701 sorbdb3_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &
work[
iphi], &
work[
itaup1], &
work[
itaup2], &
work[
itauq1], &
work[
iorbdb], &
lorbdb, &
childinfo);
702
704 {
707 }
709 {
715 {
718 }
726 }
728 {
732 }
733
736 sbbcsd_(
"N",
jobv1t,
jobu2,
jobu1,
"T", m, &
i__1, &
i__2, &
theta[1], &
work[
iphi], &c__0, &c__1, &
v1t[
v1t_offset],
ldv1t, &
u2[
u2_offset],
ldu2, &
u1[
u1_offset],
ldu1, &
work[
ib11d], &
work[
ib11e], &
work[
ib12d], &
work[
ib12e], &
work[
ib21d], &
work[
ib21e] , &
work[
ib22d], &
work[
ib22e], &
work[
ibbcsd], &
lbbcsd, &
childinfo);
737
738
740 {
745 {
747 }
752 {
754 }
756 {
758 }
760 {
762 }
763 }
764 }
765 else
766 {
767
768
770 sorbdb4_(m,
p,
q, &
x11[
x11_offset],
ldx11, &
x21[
x21_offset],
ldx21, &
theta[1], &
work[
iphi], &
work[
itaup1], &
work[
itaup2], &
work[
itauq1], &
work[
iorbdb], &
work[
iorbdb + *m], &
i__1, &
childinfo) ;
771
773 {
779 {
781 }
787 }
789 {
796 {
798 }
806 }
808 {
818 }
819
822 sbbcsd_(
jobu2,
jobu1,
"N",
jobv1t,
"N", m, &
i__1, &
i__2, &
theta[1], &
work[
iphi], &
u2[
u2_offset],
ldu2, &
u1[
u1_offset],
ldu1, &c__0, &c__1, &
v1t[
v1t_offset],
ldv1t, &
work[
ib11d], &
work[
ib11e], &
work[
ib12d], &
work[
ib12e], &
work[
ib21d], &
work[
ib21e], &
work[
ib22d], &
work[
ib22e], &
work[
ibbcsd], &
lbbcsd, &
childinfo);
823
824
826 {
831 {
833 }
838 {
840 }
842 {
844 }
846 {
848 }
849 }
850 }
851 return 0;
852
853}
int integer
Definition FLA_f2c.h:25
int logical
Definition FLA_f2c.h:36
float real
Definition FLA_f2c.h:30
int i
Definition bl1_axmyv2.c:145
int sorglq_fla(integer *m, integer *n, integer *k, real *a, integer *lda, real *tau, real *work, integer *lwork, integer *info)
Definition sorglq.c:122
int sorgqr_fla(integer *m, integer *n, integer *k, real *a, integer *lda, real *tau, real *work, integer *lwork, integer *info)
Definition sorgqr.c:123