DSDP
|
Solve the Schur matrix for a step direction. More...
Go to the source code of this file.
Functions | |
int | DSDPSchurMatAssemble (DSDPSchurMat M) |
Final assembly of M. More... | |
int | DSDPSchurMatDestroy (DSDPSchurMat *M) |
Free the memory in the data structure. More... | |
int | DSDPSchurMatFactor (DSDPSchurMat M, DSDPTruth *successful) |
Factor M. More... | |
int | DSDPSchurMatInitialize (DSDPSchurMat *M) |
Initialize pointers to null. More... | |
int | DSDPSchurMatInParallel (DSDPSchurMat M, DSDPTruth *flag) |
Determine whether M is computed in parallel. More... | |
int | DSDPSchurMatMultiply (DSDPSchurMat M, DSDPVec x, DSDPVec y) |
Multiply M by a vector. y = M x. More... | |
int | DSDPSchurMatOpsInitialize (struct DSDPSchurMat_Ops *dops) |
Initialize function pointers to 0. More... | |
int | DSDPSchurMatReducePVec (DSDPSchurMat M, DSDPVec x) |
Collect elements of the vector. More... | |
int | DSDPSchurMatRowScaling (DSDPSchurMat M, DSDPVec D) |
Identify which rows on on this processor. More... | |
int | DSDPSchurMatSetR (DSDPSchurMat M, double rr) |
Set up the data structure. More... | |
int | DSDPSchurMatSetup (DSDPSchurMat M, DSDPVec Y) |
Set up the data structure. More... | |
int | DSDPSchurMatShiftDiagonal (DSDPSchurMat M, double dd) |
Add a scalar to each diagonal element of the matrix. More... | |
int | DSDPSchurMatSolve (DSDPSchurMat M, DSDPVec b, DSDPVec x) |
Solve the linear system. More... | |
int | DSDPSchurMatView (DSDPSchurMat M) |
Print the matrix. More... | |
int | DSDPSchurMatZeroEntries (DSDPSchurMat M) |
Zero all element in the matrix. More... | |
int | DSDPSetFixedVariable (DSDP dsdp, int vari, double val) |
Fix variable y to exact value. More... | |
int | DSDPSetFixedVariables (DSDP dsdp, double vars[], double vals[], double xout[], int nvars) |
Fix variable y to exact values. More... | |
int | DSDPSparsityInSchurMat (DSDP dsdp, int row, int rnnz[], int mm) |
Identify nonzero elements in a row of the Schur complement. More... | |
Solve the Schur matrix for a step direction.
Definition in file dsdpschurmat.c.
int DSDPSchurMatAssemble | ( | DSDPSchurMat | M | ) |
Final assembly of M.
M | matrix |
Important in parallel implementation.
Definition at line 174 of file dsdpschurmat.c.
int DSDPSchurMatDestroy | ( | DSDPSchurMat * | M | ) |
Free the memory in the data structure.
M | matrix |
Definition at line 414 of file dsdpschurmat.c.
int DSDPSchurMatFactor | ( | DSDPSchurMat | M, |
DSDPTruth * | successful | ||
) |
Factor M.
M | matrix |
successful | false if factorization failed. |
Definition at line 196 of file dsdpschurmat.c.
Referenced by DSDPComputeDualStepDirections().
int DSDPSchurMatInitialize | ( | DSDPSchurMat * | M | ) |
Initialize pointers to null.
M | Schur matrix object |
Definition at line 79 of file dsdpschurmat.c.
int DSDPSchurMatInParallel | ( | DSDPSchurMat | M, |
DSDPTruth * | flag | ||
) |
Determine whether M is computed in parallel.
M | matrix |
flag | true or false |
Important in parallel implementation.
Definition at line 149 of file dsdpschurmat.c.
Referenced by DSDPSchurMatReducePVec(), and DSDPSchurMatVariableCompute().
int DSDPSchurMatMultiply | ( | DSDPSchurMat | M, |
DSDPVec | x, | ||
DSDPVec | y | ||
) |
Multiply M by a vector. y = M x.
M | matrix |
x | in vector. |
y | product. |
Definition at line 231 of file dsdpschurmat.c.
int DSDPSchurMatOpsInitialize | ( | struct DSDPSchurMat_Ops * | dops | ) |
Initialize function pointers to 0.
dops | address of a structure of function pointers. |
Definition at line 44 of file dsdpschurmat.c.
Referenced by DSDPSchurMatInitialize().
int DSDPSchurMatReducePVec | ( | DSDPSchurMat | M, |
DSDPVec | x | ||
) |
Collect elements of the vector.
M | matrix |
x | vector. |
Important in parallel implementation. Otherwise does nothing.
Definition at line 307 of file dsdpschurmat.c.
int DSDPSchurMatRowScaling | ( | DSDPSchurMat | M, |
DSDPVec | D | ||
) |
Identify which rows on on this processor.
M | matrix |
D | Variables marked with 0 or 1. |
Definition at line 399 of file dsdpschurmat.c.
int DSDPSchurMatSetR | ( | DSDPSchurMat | M, |
double | rr | ||
) |
Set up the data structure.
M | matrix |
rr | residual |
Definition at line 338 of file dsdpschurmat.c.
int DSDPSchurMatSetup | ( | DSDPSchurMat | M, |
DSDPVec | Y | ||
) |
Set up the data structure.
M | matrix |
Y | variable vector. |
Definition at line 352 of file dsdpschurmat.c.
int DSDPSchurMatShiftDiagonal | ( | DSDPSchurMat | M, |
double | dd | ||
) |
Add a scalar to each diagonal element of the matrix.
M | matrix |
dd | diagonal shift |
Definition at line 120 of file dsdpschurmat.c.
Referenced by DSDPComputeDualStepDirections().
int DSDPSchurMatSolve | ( | DSDPSchurMat | M, |
DSDPVec | b, | ||
DSDPVec | x | ||
) |
Solve the linear system.
M | matrix |
b | the right-hand side |
x | solution |
Definition at line 466 of file dsdpschurmat.c.
int DSDPSchurMatView | ( | DSDPSchurMat | M | ) |
Print the matrix.
M | matrix |
Definition at line 376 of file dsdpschurmat.c.
Referenced by DSDPComputeDualStepDirections().
int DSDPSchurMatZeroEntries | ( | DSDPSchurMat | M | ) |
int DSDPSparsityInSchurMat | ( | DSDP | dsdp, |
int | row, | ||
int | rnnz[], | ||
int | mm | ||
) |
Identify nonzero elements in a row of the Schur complement.
dsdp | solver |
row | corresponding to variable y. |
rnnz | array to be marked nonzero if nonzero. |
mm | dimension of M matrix |
Definition at line 649 of file dsdpschurmat.c.