173 CHARACTER trana, tranb
174 INTEGER info, isgn, lda, ldb, ldc, m, n
178 REAL a( lda, * ), b( ldb, * ), c( ldc, * )
185 parameter( zero = 0.0e+0, one = 1.0e+0 )
188 LOGICAL notrna, notrnb
189 INTEGER ierr, j, k, k1, k2, knext, l, l1, l2, lnext
190 REAL a11, bignum, da11, db, eps, scaloc, sgn, smin,
191 $ smlnum, suml, sumr, xnorm
194 REAL dum( 1 ), vec( 2, 2 ), x( 2, 2 )
205 INTRINSIC abs, max, min, real
211 notrna =
lsame( trana,
'N' )
212 notrnb =
lsame( tranb,
'N' )
215 IF( .NOT.notrna .AND. .NOT.
lsame( trana,
'T' ) .AND. .NOT.
216 $
lsame( trana,
'C' ) )
THEN 218 ELSE IF( .NOT.notrnb .AND. .NOT.
lsame( tranb,
'T' ) .AND. .NOT.
219 $
lsame( tranb,
'C' ) )
THEN 221 ELSE IF( isgn.NE.1 .AND. isgn.NE.-1 )
THEN 223 ELSE IF( m.LT.0 )
THEN 225 ELSE IF( n.LT.0 )
THEN 227 ELSE IF( lda.LT.max( 1, m ) )
THEN 229 ELSE IF( ldb.LT.max( 1, n ) )
THEN 231 ELSE IF( ldc.LT.max( 1, m ) )
THEN 235 CALL xerbla(
'STRSYL', -info )
242 IF( m.EQ.0 .OR. n.EQ.0 )
249 bignum = one / smlnum
250 CALL slabad( smlnum, bignum )
251 smlnum = smlnum*
REAL( M*N ) / eps
252 bignum = one / smlnum
254 smin = max( smlnum, eps*
slange(
'M', m, m, a, lda, dum ),
255 $ eps*
slange(
'M', n, n, b, ldb, dum ) )
259 IF( notrna .AND. notrnb )
THEN 284 IF( b( l+1, l ).NE.zero )
THEN 306 IF( a( k, k-1 ).NE.zero )
THEN 317 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN 318 suml =
sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
319 $ c( min( k1+1, m ), l1 ), 1 )
320 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
321 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
324 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
326 IF( da11.LE.smin )
THEN 331 db = abs( vec( 1, 1 ) )
332 IF( da11.LT.one .AND. db.GT.one )
THEN 333 IF( db.GT.bignum*da11 )
336 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
338 IF( scaloc.NE.one )
THEN 340 CALL sscal( m, scaloc, c( 1, j ), 1 )
344 c( k1, l1 ) = x( 1, 1 )
346 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN 348 suml =
sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
349 $ c( min( k2+1, m ), l1 ), 1 )
350 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
351 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
353 suml =
sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
354 $ c( min( k2+1, m ), l1 ), 1 )
355 sumr =
sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
356 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
358 CALL slaln2( .false., 2, 1, smin, one, a( k1, k1 ),
359 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
360 $ zero, x, 2, scaloc, xnorm, ierr )
364 IF( scaloc.NE.one )
THEN 366 CALL sscal( m, scaloc, c( 1, j ), 1 )
370 c( k1, l1 ) = x( 1, 1 )
371 c( k2, l1 ) = x( 2, 1 )
373 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN 375 suml =
sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
376 $ c( min( k1+1, m ), l1 ), 1 )
377 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
378 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
380 suml =
sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
381 $ c( min( k1+1, m ), l2 ), 1 )
382 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
383 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
385 CALL slaln2( .true., 2, 1, smin, one, b( l1, l1 ),
386 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
387 $ zero, x, 2, scaloc, xnorm, ierr )
391 IF( scaloc.NE.one )
THEN 393 CALL sscal( m, scaloc, c( 1, j ), 1 )
397 c( k1, l1 ) = x( 1, 1 )
398 c( k1, l2 ) = x( 2, 1 )
400 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN 402 suml =
sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
403 $ c( min( k2+1, m ), l1 ), 1 )
404 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
405 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
407 suml =
sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
408 $ c( min( k2+1, m ), l2 ), 1 )
409 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
410 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
412 suml =
sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
413 $ c( min( k2+1, m ), l1 ), 1 )
414 sumr =
sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
415 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
417 suml =
sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
418 $ c( min( k2+1, m ), l2 ), 1 )
419 sumr =
sdot( l1-1, c( k2, 1 ), ldc, b( 1, l2 ), 1 )
420 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
422 CALL slasy2( .false., .false., isgn, 2, 2,
423 $ a( k1, k1 ), lda, b( l1, l1 ), ldb, vec,
424 $ 2, scaloc, x, 2, xnorm, ierr )
428 IF( scaloc.NE.one )
THEN 430 CALL sscal( m, scaloc, c( 1, j ), 1 )
434 c( k1, l1 ) = x( 1, 1 )
435 c( k1, l2 ) = x( 1, 2 )
436 c( k2, l1 ) = x( 2, 1 )
437 c( k2, l2 ) = x( 2, 2 )
444 ELSE IF( .NOT.notrna .AND. notrnb )
THEN 469 IF( b( l+1, l ).NE.zero )
THEN 491 IF( a( k+1, k ).NE.zero )
THEN 502 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN 503 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
504 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
505 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
508 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
510 IF( da11.LE.smin )
THEN 515 db = abs( vec( 1, 1 ) )
516 IF( da11.LT.one .AND. db.GT.one )
THEN 517 IF( db.GT.bignum*da11 )
520 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
522 IF( scaloc.NE.one )
THEN 524 CALL sscal( m, scaloc, c( 1, j ), 1 )
528 c( k1, l1 ) = x( 1, 1 )
530 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN 532 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
533 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
534 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
536 suml =
sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
537 sumr =
sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
538 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
540 CALL slaln2( .true., 2, 1, smin, one, a( k1, k1 ),
541 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
542 $ zero, x, 2, scaloc, xnorm, ierr )
546 IF( scaloc.NE.one )
THEN 548 CALL sscal( m, scaloc, c( 1, j ), 1 )
552 c( k1, l1 ) = x( 1, 1 )
553 c( k2, l1 ) = x( 2, 1 )
555 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN 557 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
558 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
559 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
561 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
562 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
563 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
565 CALL slaln2( .true., 2, 1, smin, one, b( l1, l1 ),
566 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
567 $ zero, x, 2, scaloc, xnorm, ierr )
571 IF( scaloc.NE.one )
THEN 573 CALL sscal( m, scaloc, c( 1, j ), 1 )
577 c( k1, l1 ) = x( 1, 1 )
578 c( k1, l2 ) = x( 2, 1 )
580 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN 582 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
583 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
584 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
586 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
587 sumr =
sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
588 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
590 suml =
sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
591 sumr =
sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
592 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
594 suml =
sdot( k1-1, a( 1, k2 ), 1, c( 1, l2 ), 1 )
595 sumr =
sdot( l1-1, c( k2, 1 ), ldc, b( 1, l2 ), 1 )
596 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
598 CALL slasy2( .true., .false., isgn, 2, 2, a( k1, k1 ),
599 $ lda, b( l1, l1 ), ldb, vec, 2, scaloc, x,
604 IF( scaloc.NE.one )
THEN 606 CALL sscal( m, scaloc, c( 1, j ), 1 )
610 c( k1, l1 ) = x( 1, 1 )
611 c( k1, l2 ) = x( 1, 2 )
612 c( k2, l1 ) = x( 2, 1 )
613 c( k2, l2 ) = x( 2, 2 )
619 ELSE IF( .NOT.notrna .AND. .NOT.notrnb )
THEN 644 IF( b( l, l-1 ).NE.zero )
THEN 666 IF( a( k+1, k ).NE.zero )
THEN 677 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN 678 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
679 sumr =
sdot( n-l1, c( k1, min( l1+1, n ) ), ldc,
680 $ b( l1, min( l1+1, n ) ), ldb )
681 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
684 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
686 IF( da11.LE.smin )
THEN 691 db = abs( vec( 1, 1 ) )
692 IF( da11.LT.one .AND. db.GT.one )
THEN 693 IF( db.GT.bignum*da11 )
696 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
698 IF( scaloc.NE.one )
THEN 700 CALL sscal( m, scaloc, c( 1, j ), 1 )
704 c( k1, l1 ) = x( 1, 1 )
706 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN 708 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
709 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
710 $ b( l1, min( l2+1, n ) ), ldb )
711 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
713 suml =
sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
714 sumr =
sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
715 $ b( l1, min( l2+1, n ) ), ldb )
716 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
718 CALL slaln2( .true., 2, 1, smin, one, a( k1, k1 ),
719 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
720 $ zero, x, 2, scaloc, xnorm, ierr )
724 IF( scaloc.NE.one )
THEN 726 CALL sscal( m, scaloc, c( 1, j ), 1 )
730 c( k1, l1 ) = x( 1, 1 )
731 c( k2, l1 ) = x( 2, 1 )
733 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN 735 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
736 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
737 $ b( l1, min( l2+1, n ) ), ldb )
738 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
740 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
741 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
742 $ b( l2, min( l2+1, n ) ), ldb )
743 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
745 CALL slaln2( .false., 2, 1, smin, one, b( l1, l1 ),
746 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
747 $ zero, x, 2, scaloc, xnorm, ierr )
751 IF( scaloc.NE.one )
THEN 753 CALL sscal( m, scaloc, c( 1, j ), 1 )
757 c( k1, l1 ) = x( 1, 1 )
758 c( k1, l2 ) = x( 2, 1 )
760 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN 762 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
763 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
764 $ b( l1, min( l2+1, n ) ), ldb )
765 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
767 suml =
sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
768 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
769 $ b( l2, min( l2+1, n ) ), ldb )
770 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
772 suml =
sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
773 sumr =
sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
774 $ b( l1, min( l2+1, n ) ), ldb )
775 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
777 suml =
sdot( k1-1, a( 1, k2 ), 1, c( 1, l2 ), 1 )
778 sumr =
sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
779 $ b( l2, min(l2+1, n ) ), ldb )
780 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
782 CALL slasy2( .true., .true., isgn, 2, 2, a( k1, k1 ),
783 $ lda, b( l1, l1 ), ldb, vec, 2, scaloc, x,
788 IF( scaloc.NE.one )
THEN 790 CALL sscal( m, scaloc, c( 1, j ), 1 )
794 c( k1, l1 ) = x( 1, 1 )
795 c( k1, l2 ) = x( 1, 2 )
796 c( k2, l1 ) = x( 2, 1 )
797 c( k2, l2 ) = x( 2, 2 )
803 ELSE IF( notrna .AND. .NOT.notrnb )
THEN 828 IF( b( l, l-1 ).NE.zero )
THEN 850 IF( a( k, k-1 ).NE.zero )
THEN 861 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN 862 suml =
sdot( m-k1, a( k1, min(k1+1, m ) ), lda,
863 $ c( min( k1+1, m ), l1 ), 1 )
864 sumr =
sdot( n-l1, c( k1, min( l1+1, n ) ), ldc,
865 $ b( l1, min( l1+1, n ) ), ldb )
866 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
869 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
871 IF( da11.LE.smin )
THEN 876 db = abs( vec( 1, 1 ) )
877 IF( da11.LT.one .AND. db.GT.one )
THEN 878 IF( db.GT.bignum*da11 )
881 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
883 IF( scaloc.NE.one )
THEN 885 CALL sscal( m, scaloc, c( 1, j ), 1 )
889 c( k1, l1 ) = x( 1, 1 )
891 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN 893 suml =
sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
894 $ c( min( k2+1, m ), l1 ), 1 )
895 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
896 $ b( l1, min( l2+1, n ) ), ldb )
897 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
899 suml =
sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
900 $ c( min( k2+1, m ), l1 ), 1 )
901 sumr =
sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
902 $ b( l1, min( l2+1, n ) ), ldb )
903 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
905 CALL slaln2( .false., 2, 1, smin, one, a( k1, k1 ),
906 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
907 $ zero, x, 2, scaloc, xnorm, ierr )
911 IF( scaloc.NE.one )
THEN 913 CALL sscal( m, scaloc, c( 1, j ), 1 )
917 c( k1, l1 ) = x( 1, 1 )
918 c( k2, l1 ) = x( 2, 1 )
920 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN 922 suml =
sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
923 $ c( min( k1+1, m ), l1 ), 1 )
924 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
925 $ b( l1, min( l2+1, n ) ), ldb )
926 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
928 suml =
sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
929 $ c( min( k1+1, m ), l2 ), 1 )
930 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
931 $ b( l2, min( l2+1, n ) ), ldb )
932 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
934 CALL slaln2( .false., 2, 1, smin, one, b( l1, l1 ),
935 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
936 $ zero, x, 2, scaloc, xnorm, ierr )
940 IF( scaloc.NE.one )
THEN 942 CALL sscal( m, scaloc, c( 1, j ), 1 )
946 c( k1, l1 ) = x( 1, 1 )
947 c( k1, l2 ) = x( 2, 1 )
949 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN 951 suml =
sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
952 $ c( min( k2+1, m ), l1 ), 1 )
953 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
954 $ b( l1, min( l2+1, n ) ), ldb )
955 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
957 suml =
sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
958 $ c( min( k2+1, m ), l2 ), 1 )
959 sumr =
sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
960 $ b( l2, min( l2+1, n ) ), ldb )
961 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
963 suml =
sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
964 $ c( min( k2+1, m ), l1 ), 1 )
965 sumr =
sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
966 $ b( l1, min( l2+1, n ) ), ldb )
967 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
969 suml =
sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
970 $ c( min( k2+1, m ), l2 ), 1 )
971 sumr =
sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
972 $ b( l2, min( l2+1, n ) ), ldb )
973 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
975 CALL slasy2( .false., .true., isgn, 2, 2, a( k1, k1 ),
976 $ lda, b( l1, l1 ), ldb, vec, 2, scaloc, x,
981 IF( scaloc.NE.one )
THEN 983 CALL sscal( m, scaloc, c( 1, j ), 1 )
987 c( k1, l1 ) = x( 1, 1 )
988 c( k1, l2 ) = x( 1, 2 )
989 c( k2, l1 ) = x( 2, 1 )
990 c( k2, l2 ) = x( 2, 2 )
real function sdot(N, SX, INCX, SY, INCY)
SDOT
subroutine slasy2(LTRANL, LTRANR, ISGN, N1, N2, TL, LDTL, TR, LDTR, B, LDB, SCALE, X, LDX, XNORM, INFO)
SLASY2 solves the Sylvester matrix equation where the matrices are of order 1 or 2.
real function slange(NORM, M, N, A, LDA, WORK)
SLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine slaln2(LTRANS, NA, NW, SMIN, CA, A, LDA, D1, D2, B, LDB, WR, WI, X, LDX, SCALE, XNORM, INFO)
SLALN2 solves a 1-by-1 or 2-by-2 linear system of equations of the specified form.
subroutine xerbla(SRNAME, INFO)
XERBLA
logical function lsame(CA, CB)
LSAME
real function slamch(CMACH)
SLAMCH
subroutine slabad(SMALL, LARGE)
SLABAD
subroutine sscal(N, SA, SX, INCX)
SSCAL