|
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 | DSDPSchurMatSetData (DSDPSchurMat *M, struct DSDPSchurMat_Ops *ops, void *data) |
| Set the Schur matrix with an opaque pointer and structure of function pointers. 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.
Referenced by DSDPComputeHessian().
| int DSDPSchurMatDestroy | ( | DSDPSchurMat * | M | ) |
Free the memory in the data structure.
| M | matrix |
Definition at line 414 of file dsdpschurmat.c.
Referenced by DSDPTakeDown().
| 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.
Referenced by DSDPCreate().
| 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 DSDPSchurMatDiagonalScaling(), 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 DSDPSchurMatDestroy(), and 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.
Referenced by DSDPComputeG(), DSDPComputeHessian(), and DSDPHessianMultiplyAdd().
| 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.
Referenced by DSDPComputeG(), and DSDPHessianMultiplyAdd().
| int DSDPSchurMatSetData | ( | DSDPSchurMat * | M, |
| struct DSDPSchurMat_Ops * | ops, | ||
| void * | data | ||
| ) |
Set the Schur matrix with an opaque pointer and structure of function pointers.
| M | Schur matrix object |
| ops | address of a structure of function pointers. |
| data | opaque pointer to its internal data structure. |
Definition at line 28 of file dsdpschurmat.c.
Referenced by DSDPSchurMatDestroy(), DSDPSchurMatInitialize(), and DSDPSetSchurMatOps().
| int DSDPSchurMatSetR | ( | DSDPSchurMat | M, |
| double | rr | ||
| ) |
Set up the data structure.
| M | matrix |
| rr | residual |
Definition at line 338 of file dsdpschurmat.c.
Referenced by DSDPComputeG(), DSDPComputeHessian(), and DSDPComputeNewY().
| int DSDPSchurMatSetup | ( | DSDPSchurMat | M, |
| DSDPVec | Y | ||
| ) |
Set up the data structure.
| M | matrix |
| Y | variable vector. |
Definition at line 352 of file dsdpschurmat.c.
Referenced by DSDPSetup().
| 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.
Referenced by DSDPCGSolve().
| int DSDPSchurMatView | ( | DSDPSchurMat | M | ) |
Print the matrix.
| M | matrix |
Definition at line 376 of file dsdpschurmat.c.
Referenced by DSDPComputeDualStepDirections().
| int DSDPSchurMatZeroEntries | ( | DSDPSchurMat | M | ) |
Zero all element in the matrix.
| M | matrix |
Definition at line 97 of file dsdpschurmat.c.
Referenced by DSDPComputeHessian().
| 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.