Detailed Description
interface methods for lapack functions
This file is used to call the LAPACK routine DSYEVR and DGETRF.
LAPACK can be built with 32 or 64bit integers, which is not visible to the outside. This interface tries to work around this issue. Since the Fortran routines are called by reference, they only get a pointer. We always use 64bit integers on input, but reduce the output to 32bit integers. We assume that all sizes can be represented in 32bit integers.
Definition in file lapack_calls.h.
Go to the source code of this file.
Functions  
SCIP_Bool  SCIPlapackIsAvailable (void) 
void  SCIPlapackVersion (int *major, int *minor, int *patch) 
SCIP_RETCODE  SCIPlapackComputeEigenvalues (BMS_BUFMEM *bufmem, SCIP_Bool geteigenvectors, int N, SCIP_Real *a, SCIP_Real *w) 
SCIP_RETCODE  SCIPlapackSolveLinearEquations (BMS_BUFMEM *bufmem, int N, SCIP_Real *A, SCIP_Real *b, SCIP_Real *x, SCIP_Bool *success) 
Function Documentation
◆ SCIPlapackIsAvailable()
SCIP_Bool SCIPlapackIsAvailable  (  void  ) 
returns whether Lapack is available, i.e., whether it has been linked in
Definition at line 121 of file lapack_calls.c.
References FALSE, SCIPisIpoptAvailableIpopt(), and TRUE.
Referenced by detectSocQuadraticComplex(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXECSOL(), SCIPcomputeFacetVertexPolyhedralNonlinear(), and SCIPexprComputeQuadraticCurvature().
◆ SCIPlapackVersion()
void SCIPlapackVersion  (  int *  majorver, 
int *  minorver,  
int *  patchver  
) 
returns Lapack version if Lapack is available
returns whether Lapack s available, i.e., whether it has been linked in
 Parameters

majorver major version number minorver minor version number patchver patch version number
Definition at line 181 of file lapack_calls.c.
References BMSallocBufferMemoryArray, BMSfreeBufferMemoryArray, BMSfreeBufferMemoryArrayNull, F77_FUNC, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_ERROR, SCIP_INVALID, SCIP_OKAY, SCIP_Real, and SCIPerrorMessage.
Referenced by doScipCreate().
◆ SCIPlapackComputeEigenvalues()
SCIP_RETCODE SCIPlapackComputeEigenvalues  (  BMS_BUFMEM *  bufmem, 
SCIP_Bool  geteigenvectors,  
int  N,  
SCIP_Real *  a,  
SCIP_Real *  w  
) 
computes eigenvalues and eigenvectors of a dense symmetric matrix
Calls Lapack's DSYEV function.
 Parameters

bufmem buffer memory (or NULL if IPOPT is used) geteigenvectors should also eigenvectors should be computed? N dimension a matrix data on input (size N*N); eigenvectors on output if geteigenvectors == TRUE w array to store eigenvalues (size N) (or NULL)
Definition at line 352 of file lapack_calls.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPcallLapackDsyevIpopt(), SCIPerrorMessage, and SCIPisIpoptAvailableIpopt().
Referenced by detectSocQuadraticComplex(), getEigenValues(), and SCIPexprComputeQuadraticCurvature().
◆ SCIPlapackSolveLinearEquations()
SCIP_RETCODE SCIPlapackSolveLinearEquations  (  BMS_BUFMEM *  bufmem, 
int  n,  
SCIP_Real *  A,  
SCIP_Real *  b,  
SCIP_Real *  x,  
SCIP_Bool *  success  
) 
solves a linear problem of the form Ax = b for a regular matrix A
Calls Lapack's DGETRF routine to calculate a LU factorization and uses this factorization to solve the linear problem Ax = b.
solves a linear problem of the form Ax = b for a regular matrix A
Calls Lapacks DGETRF routine to calculate a LU factorization and uses this factorization to solve the linear problem Ax = b.
Code taken from nlpi_ipopt.cpp
 Parameters

bufmem buffer memory n dimension A matrix data on input (size N*N); filled columnwise b right hand side vector (size N) x buffer to store solution (size N) success pointer to store if the solving routine was successful
Definition at line 386 of file lapack_calls.c.
References BMSallocBufferMemoryArray, BMScopyMemoryArray, BMSduplicateBufferMemoryArray, BMSfreeBufferMemoryArray, F77_FUNC, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNUSED, SCIPdebugMessage, SCIPisIpoptAvailableIpopt(), SCIPsolveLinearEquationsIpopt(), and TRUE.
Referenced by computeHyperplaneThreePoints().