Go to the documentation of this file. 1 #if !defined(__DSDP_SCHURMATRIXOPERATIONS_H)
2 #define __DSDP_SCHURMATRIXOPERATIONS_H
37 struct DSDPSchurMat_Ops *dsdpops;
56 extern int DSDPSchurMatSetData(
DSDPSchurMat*,
struct DSDPSchurMat_Ops*,
void*);
77 extern int DSDPSchurMatVariableComputeC(
DSDPSchurMat,
double*);
91 extern int DSDPInitializeFixedVariable( FixedVariables *);
92 extern int DSDPAddFixedVariable(
DSDPSchurMat,
int,
double);
int DSDPSchurMatView(DSDPSchurMat)
Print the matrix.
int DSDPSchurMatSolve(DSDPSchurMat, DSDPVec, DSDPVec)
Solve the linear system.
int DSDPSchurMatVariableCompute(DSDPSchurMat, int, double *)
Determine with the cone should compute this diagonal element of M and RHS.
int DSDPSchurMatAddDiagonal(DSDPSchurMat, DSDPVec)
Add elements to a row of the Schur matrix.
int DSDPSchurMatRowColumnScaling(DSDPSchurMat, int, DSDPVec, int *)
Get the scaling and nonzero pattern of each column in this row of the matrix.
int DSDPSchurMatZeroEntries(DSDPSchurMat)
Zero all element in the matrix.
struct DSDPVec_C DSDPVec
This object hold m+2 variables: a scaling of C, the y variables, and r.
Internal data structure for CG method.
int DSDPSchurMatSetup(DSDPSchurMat, DSDPVec)
Set up the data structure.
Vector operations used by the solver.
DSDPTruth
Boolean variables.
int DSDPSchurMatAddR(DSDPSchurMat, int, double)
Add an element to the Schur matrix correponding the variable r.
int DSDPSchurMatVariableComputeR(DSDPSchurMat, double *)
Add an element to the Schur matrix correponding the variable r.
Solver, solution types, termination codes,.
int DSDPSchurMatDiagonalScaling(DSDPSchurMat, DSDPVec)
Get the scaling and nonzero pattern of each diagonal element of the matrix.
int DSDPSchurMatReducePVec(DSDPSchurMat, DSDPVec)
Collect elements of the vector.
int DSDPSchurMatAssemble(DSDPSchurMat)
Final assembly of M.
int DSDPSchurMatAddRow(DSDPSchurMat, int, double, DSDPVec)
Add elements to a row of the Schur matrix.
int DSDPSchurMatRowScaling(DSDPSchurMat, DSDPVec)
Identify which rows on on this processor.
int DSDPSchurMatInParallel(DSDPSchurMat, DSDPTruth *)
Determine whether M is computed in parallel.
int DSDPSchurMatAddDiagonalElement(DSDPSchurMat, int, double)
Determine with the cone should compute this diagonal element of M and RHS.
int DSDPSchurMatShiftDiagonal(DSDPSchurMat, double)
Add a scalar to each diagonal element of the matrix.
int DSDPSchurMatDestroy(DSDPSchurMat *)
Free the memory in the data structure.
int DSDPSchurMatInitialize(DSDPSchurMat *)
Initialize pointers to null.
int DSDPSchurMatSetR(DSDPSchurMat, double)
Set up the data structure.
Schur complement matrix whose solution is the Newton direction.
int DSDPSchurMatMultiply(DSDPSchurMat, DSDPVec, DSDPVec)
Multiply M by a vector. y = M x.
int DSDPSchurMatFactor(DSDPSchurMat, DSDPTruth *)
Factor M.