NAME

ssysv - compute the solution to a real system of linear equations A * X = B,


SYNOPSIS

  SUBROUTINE SSYSV( UPLO, N, NRHS, A, LDA, IPIVOT, B, LDB, WORK, 
 *      LDWORK, INFO)
  CHARACTER * 1 UPLO
  INTEGER N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER IPIVOT(*)
  REAL A(LDA,*), B(LDB,*), WORK(*)
  SUBROUTINE SSYSV_64( UPLO, N, NRHS, A, LDA, IPIVOT, B, LDB, WORK, 
 *      LDWORK, INFO)
  CHARACTER * 1 UPLO
  INTEGER*8 N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER*8 IPIVOT(*)
  REAL A(LDA,*), B(LDB,*), WORK(*)

F95 INTERFACE

  SUBROUTINE SYSV( UPLO, [N], [NRHS], A, [LDA], IPIVOT, B, [LDB], 
 *       [WORK], [LDWORK], [INFO])
  CHARACTER(LEN=1) :: UPLO
  INTEGER :: N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER, DIMENSION(:) :: IPIVOT
  REAL, DIMENSION(:) :: WORK
  REAL, DIMENSION(:,:) :: A, B
  SUBROUTINE SYSV_64( UPLO, [N], [NRHS], A, [LDA], IPIVOT, B, [LDB], 
 *       [WORK], [LDWORK], [INFO])
  CHARACTER(LEN=1) :: UPLO
  INTEGER(8) :: N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER(8), DIMENSION(:) :: IPIVOT
  REAL, DIMENSION(:) :: WORK
  REAL, DIMENSION(:,:) :: A, B

C INTERFACE

#include <sunperf.h>

void ssysv(char uplo, int n, int nrhs, float *a, int lda, int *ipivot, float *b, int ldb, int *info);

void ssysv_64(char uplo, long n, long nrhs, float *a, long lda, long *ipivot, float *b, long ldb, long *info);


PURPOSE

ssysv computes the solution to a real system of linear equations A * X = B, where A is an N-by-N symmetric matrix and X and B are N-by-NRHS matrices.

The diagonal pivoting method is used to factor A as

   A = U * D * U**T,  if UPLO = 'U', or
   A = L * D * L**T,  if UPLO = 'L',

where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks. The factored form of A is then used to solve the system of equations A * X = B.


ARGUMENTS