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