Go to the source code of this file.
Functions/Subroutines |
| lapack_int | LAPACKE_ssysv_work (int matrix_order, char uplo, lapack_int n, lapack_int nrhs, float *a, lapack_int lda, lapack_int *ipiv, float *b, lapack_int ldb, float *work, lapack_int lwork) |
Function/Subroutine Documentation
| lapack_int LAPACKE_ssysv_work |
( |
int |
matrix_order, |
|
|
char |
uplo, |
|
|
lapack_int |
n, |
|
|
lapack_int |
nrhs, |
|
|
float * |
a, |
|
|
lapack_int |
lda, |
|
|
lapack_int * |
ipiv, |
|
|
float * |
b, |
|
|
lapack_int |
ldb, |
|
|
float * |
work, |
|
|
lapack_int |
lwork |
|
) |
| |
Definition at line 36 of file lapacke_ssysv_work.c.
{
LAPACK_ssysv( &uplo, &n, &nrhs, a, &lda, ipiv,
b, &ldb, work, &lwork,
&info );
if( info < 0 ) {
info = info - 1;
}
float* a_t = NULL;
float* b_t = NULL;
if( lda < n ) {
info = -6;
return info;
}
if( ldb < nrhs ) {
info = -9;
return info;
}
if( lwork == -1 ) {
LAPACK_ssysv( &uplo, &n, &nrhs, a, &lda_t, ipiv,
b, &ldb_t, work,
&lwork, &info );
return (info < 0) ? (info - 1) : info;
}
if( a_t == NULL ) {
goto exit_level_0;
}
if( b_t == NULL ) {
goto exit_level_1;
}
LAPACK_ssysv( &uplo, &n, &nrhs, a_t, &lda_t, ipiv, b_t, &ldb_t, work,
&lwork, &info );
if( info < 0 ) {
info = info - 1;
}
exit_level_1:
exit_level_0:
}
} else {
info = -1;
}
return info;
}