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