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.
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.
int DSDPSchurMatSolve(DSDPSchurMat M, DSDPVec b, DSDPVec x)
Solve the linear system.
int DSDPSchurMatFactor(DSDPSchurMat M, DSDPTruth *successful)
Factor M.
int DSDPSchurMatRowColumnScaling(DSDPSchurMat, int, DSDPVec, int *)
Get the scaling and nonzero pattern of each column in this row of the matrix.
int DSDPSchurMatMultiply(DSDPSchurMat M, DSDPVec x, DSDPVec y)
Multiply M by a vector. y = M x.
int DSDPSchurMatZeroEntries(DSDPSchurMat M)
Zero all element in the matrix.
Solver, solution types, termination codes,.
int DSDPSchurMatRowScaling(DSDPSchurMat M, DSDPVec D)
Identify which rows on on this processor.
int DSDPSchurMatView(DSDPSchurMat M)
Print the matrix.
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 DSDPSchurMatSetData(DSDPSchurMat *M, struct DSDPSchurMat_Ops *ops, void *data)
Set the Schur matrix with an opaque pointer and structure of function pointers.
int DSDPSchurMatAssemble(DSDPSchurMat M)
Final assembly of M.
int DSDPSchurMatInParallel(DSDPSchurMat M, DSDPTruth *flag)
Determine whether M is computed in parallel.
int DSDPSchurMatAddRow(DSDPSchurMat, int, double, DSDPVec)
Add elements to a row of the Schur matrix.
int DSDPSchurMatSetR(DSDPSchurMat M, double rr)
Set up the data structure.
int DSDPSchurMatAddDiagonal(DSDPSchurMat, DSDPVec)
Add elements to a row of the Schur matrix.
int DSDPSchurMatSetup(DSDPSchurMat M, DSDPVec Y)
Set up the data structure.
int DSDPSchurMatReducePVec(DSDPSchurMat M, DSDPVec x)
Collect elements of the vector.
int DSDPSchurMatDestroy(DSDPSchurMat *M)
Free the memory in the data structure.
int DSDPSchurMatVariableCompute(DSDPSchurMat, int, double *)
Determine with the cone should compute this diagonal element of M and RHS.
int DSDPSchurMatShiftDiagonal(DSDPSchurMat M, double dd)
Add a scalar to each diagonal element of the matrix.
int DSDPSchurMatInitialize(DSDPSchurMat *M)
Initialize pointers to null.