11 extern int DSDPGetConstantMat(
int,
double,
char,
struct DSDPDataMat_Ops**,
void**);
19 extern int DSDPGetDMat(
int,
double,
double[],
struct DSDPDataMat_Ops**,
void**);
29 #define __FUNCT__ "SDPConeAddASparseVecMat" 50 double alpha,
int ishift,
51 const int ind[],
const double val[],
int nnz){
60 DSDPLogInfo(0,20,
"Set sparse matrix: Block: %d, Variable %d, size: %d, Nonzeros: %d .\n",blockj,vari,n,nnz);
63 info=
DSDPGetVechMat(n,ishift,alpha,ind,val,nnz,&dmatops,&dmat); DSDPCHKERR(info);
66 info=
DSDPGetVecUMat(n,ishift,alpha,ind,val,nnz,&dmatops,&dmat); DSDPCHKERR(info);
70 DSDPFunctionReturn(0);
74 #define __FUNCT__ "SDPConeAddSparseVecMat" 76 int SDPConeAddSparseVecMat(
SDPCone sdpcone,
int blockj,
int vari,
int n,
77 int ishift,
const int ind[],
const double val[],
int nnz){
83 1.0,ishift,ind,val,nnz);DSDPCHKERR(info);
84 DSDPFunctionReturn(0);
88 #define __FUNCT__ "SDPConeSetASparseVecMat" 153 double alpha,
int ishift,
154 const int ind[],
const double val[],
int nnz){
160 DSDPFunctionReturn(0);
164 #define __FUNCT__ "SDPConeSetSparseVecMat" 166 int SDPConeSetSparseVecMat(
SDPCone sdpcone,
int blockj,
int vari,
int n,
167 int ishift,
const int ind[],
const double val[],
int nnz){
172 DSDPFunctionReturn(0);
177 #define __FUNCT__ "SDPConeAddADenseVecMat" 204 double alpha,
double val[],
int nnz){
212 DSDPLogInfo(0,20,
"Set dense matrix: Block: %d, Variable %d, size: %d, Nonzeros: %d .\n",blockj,vari,n,nnz);
215 info=DSDPGetDMat(n,alpha,val,&dmatops,&dmat); DSDPCHKERR(info);
218 DSDPSETERR(1,
"Dense U Mat type does not exist.\n");
222 DSDPFunctionReturn(0);
226 #define __FUNCT__ "SDPConeAddDenseVecMat" 228 int SDPConeAddDenseVecMat(
SDPCone sdpcone,
int blockj,
int vari,
int n,
229 double val[],
int nnz){
233 DSDPFunctionReturn(0);
238 #define __FUNCT__ "SDPConeSetADenseVecMat" 266 double alpha,
double val[],
int nnz){
271 DSDPFunctionReturn(0);
275 #define __FUNCT__ "SDPConeSetDenseVecMat" 277 int SDPConeSetDenseVecMat(
SDPCone sdpcone,
int blockj,
int vari,
int n,
278 double val[],
int nnz){
282 DSDPFunctionReturn(0);
287 #define __FUNCT__ "SDPConeAddIdentity" 307 DSDPLogInfo(0,20,
"Set identity matrix: Block: %d, Variable %d, size: %d, Multiple: %4.4e .\n",blockj,vari,n,val);
318 DSDPFunctionReturn(0);
322 #define __FUNCT__ "SDPConeSetIdentity" 340 DSDPFunctionReturn(0);
344 #define __FUNCT__ "SDPConeAddConstantMat" 364 DSDPLogInfo(0,20,
"Add allsame matrix: Block: %d, Variable %d, size: %d, Elements: %4.4e .\n",blockj,vari,n,value);
368 info=DSDPGetConstantMat(n,value,UPLQ,&constantmatops,&smat);DSDPCHKERR(info);
371 info=DSDPGetConstantMat(n,value,UPLQ,&constantmatops,&smat);DSDPCHKERR(info);
375 DSDPFunctionReturn(0);
379 #define __FUNCT__ "SDPConeSetConstantMat" 397 DSDPFunctionReturn(0);
402 #define __FUNCT__ "SDPConeSetZeroMat" 419 DSDPLogInfo(0,20,
"Add zero matrix: Block: %d, Variable %d, size: %d .\n",blockj,vari,n);
420 info=DSDPGetZeroDataMatOps(&zeromatops); DSDPCHKERR(info);
424 DSDPFunctionReturn(0);
428 #define __FUNCT__ "SDPConeSetRIdentity" 453 info=
SDPConeSetRMatrix(sdpcone,blockj,n,UPLQ,identitymatops,imat); DSDPCHKERR(info);
455 DSDPFunctionReturn(0);
459 #define __FUNCT__ "SDPConeAddARankOneMat" 479 double alpha,
int ishift,
const int ind[],
const double val[],
int nnz){
488 DSDPLogInfo(0,20,
"Set sparse matrix: Block: %d, Variable %d, size: %d, Nonzeros: %d .\n",blockj,vari,n,nnz);
491 info=
DSDPGetR1PMat(n,alpha,ishift,ind,val,nnz,&dmatops,&dmat); DSDPCHKERR(info);
494 info=
DSDPGetR1UMat(n,alpha,ishift,ind,val,nnz,&dmatops,&dmat); DSDPCHKERR(info);
498 DSDPFunctionReturn(0);
501 #define __FUNCT__ "SDPConeSetARankOneMat" 520 double alpha,
int ishift,
const int ind[],
const double val[],
int nnz){
527 DSDPFunctionReturn(0);
531 #define __FUNCT__ "DSDPSetDataMatZero" 541 info=DSDPGetZeroDataMatOps(&zeromatops); DSDPCHKERR(info);
542 info=DSDPDataMatSetData(A,zeromatops,0);DSDPCHKERR(info);
543 DSDPFunctionReturn(0);
int SDPConeSetARankOneMat(SDPCone sdpcone, int blockj, int vari, int n, double alpha, int ishift, const int ind[], const double val[], int nnz)
Set data matrix where v is a sparse vector.
int SDPConeSetRIdentity(SDPCone sdpcone, int blockj, int n, double rr)
Add identify matrix to dual matrix.
Error handling, printing, and profiling.
int SDPConeAddConstantMat(SDPCone sdpcone, int blockj, int vari, int n, double value)
Add a matrix whose elements are all the same.
int SDPConeAddADenseVecMat(SDPCone sdpcone, int blockj, int vari, int n, double alpha, double val[], int nnz)
Add a matrix in a dense format.
The API to DSDP for those applications using DSDP as a subroutine library.
int SDPConeSetConstantMat(SDPCone sdpcone, int blockj, int vari, int n, double value)
Set a matrix whose elements are all the same.
Symmetric data matrix for one block in the semidefinite cone.
int SDPConeSetZeroMat(SDPCone sdpcone, int blockj, int vari, int n)
Set a matrix whose elements are all equal zero.
int SDPConeRemoveDataMatrix(SDPCone sdpcone, int blockj, int vari)
Remove the data matrix from the cone.
int DSDPGetR1PMat(int, double, int, const int[], const double[], int, struct DSDPDataMat_Ops **, void **)
Create a rank one matrix usuable by DSDP in packed symmetric format.
int SDPConeAddARankOneMat(SDPCone sdpcone, int blockj, int vari, int n, double alpha, int ishift, const int ind[], const double val[], int nnz)
Add data matrix where v is a sparse vector.
The interface between the SDPCone and the data matrices.
int SDPConeAddASparseVecMat(SDPCone sdpcone, int blockj, int vari, int n, double alpha, int ishift, const int ind[], const double val[], int nnz)
Add data matrix in a sparse format.
int DSDPGetIdentityDataMatF(int, double, struct DSDPDataMat_Ops **, void **)
Create a sparse matrix usuable by DSDP in full symmetric format.
Table of function pointers that operate on the data matrix.
int SDPConeSetIdentity(SDPCone sdpcone, int blockj, int vari, int n, double val)
Set a matrix to be a multiple of the identity matrix.
int DSDPGetVechMat(int, int, double, const int[], const double[], int, struct DSDPDataMat_Ops **, void **)
Given data in packed symmetric format, create a sparse matrix usuable by DSDP.
int DSDPSetDataMatZero(DSDPDataMat *A)
Make a data matrix a zero matrix.
int DSDPGetIdentityDataMatP(int, double, struct DSDPDataMat_Ops **, void **)
Create a sparse matrix usuable by DSDP in packed symmetric format.
int SDPConeSetRMatrix(SDPCone, int, int, char, struct DSDPDataMat_Ops *, void *)
Add identity to dual matrix.
Internal structure for semidefinite cone.
int DSDPGetVecUMat(int, int, double, const int[], const double[], int, struct DSDPDataMat_Ops **, void **)
Given data in full symmetric format, create a sparse matrix usuable by DSDP.
int SDPConeGetStorageFormat(SDPCone sdpcone, int blockj, char *format)
Get the storage format for the block.
int DSDPGetR1UMat(int, double, int, const int[], const double[], int, struct DSDPDataMat_Ops **, void **)
Create a rank one matrix usuable by DSDP in full symmetric format.
int SDPConeAddIdentity(SDPCone sdpcone, int blockj, int vari, int n, double val)
Add a matrix that is a multiple of the identity matrix.
int SDPConeSetASparseVecMat(SDPCone sdpcone, int blockj, int vari, int n, double alpha, int ishift, const int ind[], const double val[], int nnz)
Set data matrix in a sparse format.
int SDPConeSetADenseVecMat(SDPCone sdpcone, int blockj, int vari, int n, double alpha, double val[], int nnz)
Set a matrix in a dense format.
int SDPConeAddDataMatrix(SDPCone, int, int, int, char, struct DSDPDataMat_Ops *, void *)
Add a data matrix .