162 SUBROUTINE strsyl( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C,
170 CHARACTER TRANA, TRANB
171 INTEGER INFO, ISGN, LDA, LDB, LDC, M, N
175 REAL A( LDA, * ), B( LDB, * ), C( LDC, * )
182 parameter( zero = 0.0e+0, one = 1.0e+0 )
185 LOGICAL NOTRNA, NOTRNB
186 INTEGER IERR, J, K, K1, K2, KNEXT, L, L1, L2, LNEXT
187 REAL A11, BIGNUM, DA11, DB, EPS, SCALOC, SGN, SMIN,
188 $ smlnum, suml, sumr, xnorm
191 REAL DUM( 1 ), VEC( 2, 2 ), X( 2, 2 )
195 REAL SDOT, SLAMCH, SLANGE
196 EXTERNAL lsame, sdot, slamch, slange
202 INTRINSIC abs, max, min, real
208 notrna = lsame( trana,
'N' )
209 notrnb = lsame( tranb,
'N' )
212 IF( .NOT.notrna .AND. .NOT.lsame( trana,
'T' ) .AND. .NOT.
213 $ lsame( trana,
'C' ) )
THEN
215 ELSE IF( .NOT.notrnb .AND. .NOT.lsame( tranb,
'T' ) .AND. .NOT.
216 $ lsame( tranb,
'C' ) )
THEN
218 ELSE IF( isgn.NE.1 .AND. isgn.NE.-1 )
THEN
220 ELSE IF( m.LT.0 )
THEN
222 ELSE IF( n.LT.0 )
THEN
224 ELSE IF( lda.LT.max( 1, m ) )
THEN
226 ELSE IF( ldb.LT.max( 1, n ) )
THEN
228 ELSE IF( ldc.LT.max( 1, m ) )
THEN
232 CALL xerbla(
'STRSYL', -info )
239 IF( m.EQ.0 .OR. n.EQ.0 )
245 smlnum = slamch(
'S' )
246 bignum = one / smlnum
247 CALL slabad( smlnum, bignum )
248 smlnum = smlnum*real( m*n ) / eps
249 bignum = one / smlnum
251 smin = max( smlnum, eps*slange(
'M', m, m, a, lda, dum ),
252 $ eps*slange(
'M', n, n, b, ldb, dum ) )
256 IF( notrna .AND. notrnb )
THEN
281 IF( b( l+1, l ).NE.zero )
THEN
303 IF( a( k, k-1 ).NE.zero )
THEN
314 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN
315 suml = sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
316 $ c( min( k1+1, m ), l1 ), 1 )
317 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
318 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
321 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
323 IF( da11.LE.smin )
THEN
328 db = abs( vec( 1, 1 ) )
329 IF( da11.LT.one .AND. db.GT.one )
THEN
330 IF( db.GT.bignum*da11 )
333 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
335 IF( scaloc.NE.one )
THEN
337 CALL sscal( m, scaloc, c( 1, j ), 1 )
341 c( k1, l1 ) = x( 1, 1 )
343 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN
345 suml = sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
346 $ c( min( k2+1, m ), l1 ), 1 )
347 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
348 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
350 suml = sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
351 $ c( min( k2+1, m ), l1 ), 1 )
352 sumr = sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
353 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
355 CALL slaln2( .false., 2, 1, smin, one, a( k1, k1 ),
356 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
357 $ zero, x, 2, scaloc, xnorm, ierr )
361 IF( scaloc.NE.one )
THEN
363 CALL sscal( m, scaloc, c( 1, j ), 1 )
367 c( k1, l1 ) = x( 1, 1 )
368 c( k2, l1 ) = x( 2, 1 )
370 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN
372 suml = sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
373 $ c( min( k1+1, m ), l1 ), 1 )
374 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
375 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
377 suml = sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
378 $ c( min( k1+1, m ), l2 ), 1 )
379 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
380 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
382 CALL slaln2( .true., 2, 1, smin, one, b( l1, l1 ),
383 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
384 $ zero, x, 2, scaloc, xnorm, ierr )
388 IF( scaloc.NE.one )
THEN
390 CALL sscal( m, scaloc, c( 1, j ), 1 )
394 c( k1, l1 ) = x( 1, 1 )
395 c( k1, l2 ) = x( 2, 1 )
397 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN
399 suml = sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
400 $ c( min( k2+1, m ), l1 ), 1 )
401 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
402 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
404 suml = sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
405 $ c( min( k2+1, m ), l2 ), 1 )
406 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
407 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
409 suml = sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
410 $ c( min( k2+1, m ), l1 ), 1 )
411 sumr = sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
412 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
414 suml = sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
415 $ c( min( k2+1, m ), l2 ), 1 )
416 sumr = sdot( l1-1, c( k2, 1 ), ldc, b( 1, l2 ), 1 )
417 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
419 CALL slasy2( .false., .false., isgn, 2, 2,
420 $ a( k1, k1 ), lda, b( l1, l1 ), ldb, vec,
421 $ 2, scaloc, x, 2, xnorm, ierr )
425 IF( scaloc.NE.one )
THEN
427 CALL sscal( m, scaloc, c( 1, j ), 1 )
431 c( k1, l1 ) = x( 1, 1 )
432 c( k1, l2 ) = x( 1, 2 )
433 c( k2, l1 ) = x( 2, 1 )
434 c( k2, l2 ) = x( 2, 2 )
441 ELSE IF( .NOT.notrna .AND. notrnb )
THEN
466 IF( b( l+1, l ).NE.zero )
THEN
488 IF( a( k+1, k ).NE.zero )
THEN
499 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN
500 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
501 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
502 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
505 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
507 IF( da11.LE.smin )
THEN
512 db = abs( vec( 1, 1 ) )
513 IF( da11.LT.one .AND. db.GT.one )
THEN
514 IF( db.GT.bignum*da11 )
517 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
519 IF( scaloc.NE.one )
THEN
521 CALL sscal( m, scaloc, c( 1, j ), 1 )
525 c( k1, l1 ) = x( 1, 1 )
527 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN
529 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
530 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
531 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
533 suml = sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
534 sumr = sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
535 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
537 CALL slaln2( .true., 2, 1, smin, one, a( k1, k1 ),
538 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
539 $ zero, x, 2, scaloc, xnorm, ierr )
543 IF( scaloc.NE.one )
THEN
545 CALL sscal( m, scaloc, c( 1, j ), 1 )
549 c( k1, l1 ) = x( 1, 1 )
550 c( k2, l1 ) = x( 2, 1 )
552 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN
554 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
555 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
556 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
558 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
559 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
560 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
562 CALL slaln2( .true., 2, 1, smin, one, b( l1, l1 ),
563 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
564 $ zero, x, 2, scaloc, xnorm, ierr )
568 IF( scaloc.NE.one )
THEN
570 CALL sscal( m, scaloc, c( 1, j ), 1 )
574 c( k1, l1 ) = x( 1, 1 )
575 c( k1, l2 ) = x( 2, 1 )
577 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN
579 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
580 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l1 ), 1 )
581 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
583 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
584 sumr = sdot( l1-1, c( k1, 1 ), ldc, b( 1, l2 ), 1 )
585 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
587 suml = sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
588 sumr = sdot( l1-1, c( k2, 1 ), ldc, b( 1, l1 ), 1 )
589 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
591 suml = sdot( k1-1, a( 1, k2 ), 1, c( 1, l2 ), 1 )
592 sumr = sdot( l1-1, c( k2, 1 ), ldc, b( 1, l2 ), 1 )
593 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
595 CALL slasy2( .true., .false., isgn, 2, 2, a( k1, k1 ),
596 $ lda, b( l1, l1 ), ldb, vec, 2, scaloc, x,
601 IF( scaloc.NE.one )
THEN
603 CALL sscal( m, scaloc, c( 1, j ), 1 )
607 c( k1, l1 ) = x( 1, 1 )
608 c( k1, l2 ) = x( 1, 2 )
609 c( k2, l1 ) = x( 2, 1 )
610 c( k2, l2 ) = x( 2, 2 )
616 ELSE IF( .NOT.notrna .AND. .NOT.notrnb )
THEN
641 IF( b( l, l-1 ).NE.zero )
THEN
663 IF( a( k+1, k ).NE.zero )
THEN
674 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN
675 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
676 sumr = sdot( n-l1, c( k1, min( l1+1, n ) ), ldc,
677 $ b( l1, min( l1+1, n ) ), ldb )
678 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
681 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
683 IF( da11.LE.smin )
THEN
688 db = abs( vec( 1, 1 ) )
689 IF( da11.LT.one .AND. db.GT.one )
THEN
690 IF( db.GT.bignum*da11 )
693 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
695 IF( scaloc.NE.one )
THEN
697 CALL sscal( m, scaloc, c( 1, j ), 1 )
701 c( k1, l1 ) = x( 1, 1 )
703 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN
705 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
706 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
707 $ b( l1, min( l2+1, n ) ), ldb )
708 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
710 suml = sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
711 sumr = sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
712 $ b( l1, min( l2+1, n ) ), ldb )
713 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
715 CALL slaln2( .true., 2, 1, smin, one, a( k1, k1 ),
716 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
717 $ zero, x, 2, scaloc, xnorm, ierr )
721 IF( scaloc.NE.one )
THEN
723 CALL sscal( m, scaloc, c( 1, j ), 1 )
727 c( k1, l1 ) = x( 1, 1 )
728 c( k2, l1 ) = x( 2, 1 )
730 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN
732 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
733 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
734 $ b( l1, min( l2+1, n ) ), ldb )
735 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
737 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
738 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
739 $ b( l2, min( l2+1, n ) ), ldb )
740 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
742 CALL slaln2( .false., 2, 1, smin, one, b( l1, l1 ),
743 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
744 $ zero, x, 2, scaloc, xnorm, ierr )
748 IF( scaloc.NE.one )
THEN
750 CALL sscal( m, scaloc, c( 1, j ), 1 )
754 c( k1, l1 ) = x( 1, 1 )
755 c( k1, l2 ) = x( 2, 1 )
757 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN
759 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l1 ), 1 )
760 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
761 $ b( l1, min( l2+1, n ) ), ldb )
762 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
764 suml = sdot( k1-1, a( 1, k1 ), 1, c( 1, l2 ), 1 )
765 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
766 $ b( l2, min( l2+1, n ) ), ldb )
767 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
769 suml = sdot( k1-1, a( 1, k2 ), 1, c( 1, l1 ), 1 )
770 sumr = sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
771 $ b( l1, min( l2+1, n ) ), ldb )
772 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
774 suml = sdot( k1-1, a( 1, k2 ), 1, c( 1, l2 ), 1 )
775 sumr = sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
776 $ b( l2, min(l2+1, n ) ), ldb )
777 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
779 CALL slasy2( .true., .true., isgn, 2, 2, a( k1, k1 ),
780 $ lda, b( l1, l1 ), ldb, vec, 2, scaloc, x,
785 IF( scaloc.NE.one )
THEN
787 CALL sscal( m, scaloc, c( 1, j ), 1 )
791 c( k1, l1 ) = x( 1, 1 )
792 c( k1, l2 ) = x( 1, 2 )
793 c( k2, l1 ) = x( 2, 1 )
794 c( k2, l2 ) = x( 2, 2 )
800 ELSE IF( notrna .AND. .NOT.notrnb )
THEN
825 IF( b( l, l-1 ).NE.zero )
THEN
847 IF( a( k, k-1 ).NE.zero )
THEN
858 IF( l1.EQ.l2 .AND. k1.EQ.k2 )
THEN
859 suml = sdot( m-k1, a( k1, min(k1+1, m ) ), lda,
860 $ c( min( k1+1, m ), l1 ), 1 )
861 sumr = sdot( n-l1, c( k1, min( l1+1, n ) ), ldc,
862 $ b( l1, min( l1+1, n ) ), ldb )
863 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
866 a11 = a( k1, k1 ) + sgn*b( l1, l1 )
868 IF( da11.LE.smin )
THEN
873 db = abs( vec( 1, 1 ) )
874 IF( da11.LT.one .AND. db.GT.one )
THEN
875 IF( db.GT.bignum*da11 )
878 x( 1, 1 ) = ( vec( 1, 1 )*scaloc ) / a11
880 IF( scaloc.NE.one )
THEN
882 CALL sscal( m, scaloc, c( 1, j ), 1 )
886 c( k1, l1 ) = x( 1, 1 )
888 ELSE IF( l1.EQ.l2 .AND. k1.NE.k2 )
THEN
890 suml = sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
891 $ c( min( k2+1, m ), l1 ), 1 )
892 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
893 $ b( l1, min( l2+1, n ) ), ldb )
894 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
896 suml = sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
897 $ c( min( k2+1, m ), l1 ), 1 )
898 sumr = sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
899 $ b( l1, min( l2+1, n ) ), ldb )
900 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
902 CALL slaln2( .false., 2, 1, smin, one, a( k1, k1 ),
903 $ lda, one, one, vec, 2, -sgn*b( l1, l1 ),
904 $ zero, x, 2, scaloc, xnorm, ierr )
908 IF( scaloc.NE.one )
THEN
910 CALL sscal( m, scaloc, c( 1, j ), 1 )
914 c( k1, l1 ) = x( 1, 1 )
915 c( k2, l1 ) = x( 2, 1 )
917 ELSE IF( l1.NE.l2 .AND. k1.EQ.k2 )
THEN
919 suml = sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
920 $ c( min( k1+1, m ), l1 ), 1 )
921 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
922 $ b( l1, min( l2+1, n ) ), ldb )
923 vec( 1, 1 ) = sgn*( c( k1, l1 )-( suml+sgn*sumr ) )
925 suml = sdot( m-k1, a( k1, min( k1+1, m ) ), lda,
926 $ c( min( k1+1, m ), l2 ), 1 )
927 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
928 $ b( l2, min( l2+1, n ) ), ldb )
929 vec( 2, 1 ) = sgn*( c( k1, l2 )-( suml+sgn*sumr ) )
931 CALL slaln2( .false., 2, 1, smin, one, b( l1, l1 ),
932 $ ldb, one, one, vec, 2, -sgn*a( k1, k1 ),
933 $ zero, x, 2, scaloc, xnorm, ierr )
937 IF( scaloc.NE.one )
THEN
939 CALL sscal( m, scaloc, c( 1, j ), 1 )
943 c( k1, l1 ) = x( 1, 1 )
944 c( k1, l2 ) = x( 2, 1 )
946 ELSE IF( l1.NE.l2 .AND. k1.NE.k2 )
THEN
948 suml = sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
949 $ c( min( k2+1, m ), l1 ), 1 )
950 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
951 $ b( l1, min( l2+1, n ) ), ldb )
952 vec( 1, 1 ) = c( k1, l1 ) - ( suml+sgn*sumr )
954 suml = sdot( m-k2, a( k1, min( k2+1, m ) ), lda,
955 $ c( min( k2+1, m ), l2 ), 1 )
956 sumr = sdot( n-l2, c( k1, min( l2+1, n ) ), ldc,
957 $ b( l2, min( l2+1, n ) ), ldb )
958 vec( 1, 2 ) = c( k1, l2 ) - ( suml+sgn*sumr )
960 suml = sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
961 $ c( min( k2+1, m ), l1 ), 1 )
962 sumr = sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
963 $ b( l1, min( l2+1, n ) ), ldb )
964 vec( 2, 1 ) = c( k2, l1 ) - ( suml+sgn*sumr )
966 suml = sdot( m-k2, a( k2, min( k2+1, m ) ), lda,
967 $ c( min( k2+1, m ), l2 ), 1 )
968 sumr = sdot( n-l2, c( k2, min( l2+1, n ) ), ldc,
969 $ b( l2, min( l2+1, n ) ), ldb )
970 vec( 2, 2 ) = c( k2, l2 ) - ( suml+sgn*sumr )
972 CALL slasy2( .false., .true., isgn, 2, 2, a( k1, k1 ),
973 $ lda, b( l1, l1 ), ldb, vec, 2, scaloc, x,
978 IF( scaloc.NE.one )
THEN
980 CALL sscal( m, scaloc, c( 1, j ), 1 )
984 c( k1, l1 ) = x( 1, 1 )
985 c( k1, l2 ) = x( 1, 2 )
986 c( k2, l1 ) = x( 2, 1 )
987 c( k2, l2 ) = x( 2, 2 )
subroutine slabad(SMALL, LARGE)
SLABAD
subroutine xerbla(SRNAME, INFO)
XERBLA
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 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.
subroutine strsyl(TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, LDC, SCALE, INFO)
STRSYL
subroutine sscal(N, SA, SX, INCX)
SSCAL