dsdpxmat.h File Reference

The interface between the SDPCone and the dense matrix array. More...

Go to the source code of this file.

## Data Structures

struct | DSDPVMat_C
| Dense symmetric matrix for one block in the semidefinite cone. More...

## Typedefs

typedef struct DSDPVMat_C | DSDPVMat
| Represents a dense symmetric matrix for one block in the semidefinite cone.

## Functions

int | DSDPVMatAddOuterProduct (DSDPVMat, double, SDPConeVec)
| Add outer product of a vector to the matrix.
int | DSDPVMatCheck (DSDPVMat, SDPConeVec, SDPConeVec)
| Test correctness of operations.
int | DSDPVMatDestroy (DSDPVMat *)
| Deallocate matrix.
int | DSDPVMatExist (DSDPVMat, int *)
| Answer whether the array has been allocated or not.
int | DSDPVMatGetArray (DSDPVMat, double **, int *)
| Get the array that stores the matrix.
int | DSDPVMatGetSize (DSDPVMat, int *)
| Get number of rows and columns.
int | DSDPVMatInitialize (DSDPVMat *)
| Set pointers to null.
int | DSDPVMatMult (DSDPVMat, SDPConeVec, SDPConeVec)
| Multiply X by a vector.
int | DSDPVMatNormF2 (DSDPVMat, double *)
| Compute square of Frobenius norm of matrix.
int | DSDPVMatRestoreArray (DSDPVMat, double **, int *)
| Restore the array that stores the matrix.
int | DSDPVMatScaleDiagonal (DSDPVMat, double)
| Scaling diagonal is useful for inner products and norms.
int | DSDPVMatSetData (DSDPVMat *, struct DSDPVMat_Ops *, void *)
| Set opaque pointer an function pointers.
int | DSDPVMatShiftDiagonal (DSDPVMat, double)
| Add something to diagonal elements.
int | DSDPVMatTest (DSDPVMat)
| Test validity of matrix.
int | DSDPVMatView (DSDPVMat)
| Print matrix.
int | DSDPVMatZeroEntries (DSDPVMat)
| Zero matrix.

## Detailed Description

The interface between the SDPCone and the dense matrix array.

Definition in file dsdpxmat.h.

## Typedef Documentation

## DSDPVMat

struct DSDPVMat_C DSDPVMat

Represents a dense symmetric matrix for one block in the semidefinite cone.

Definition at line 26 of file dsdpxmat.h.

## Function Documentation

## DSDPVMatAddOuterProduct()

int DSDPVMatAddOuterProduct | ( | DSDPVMat | X,
|  | double | alpha,
|  | SDPConeVec | V
| ) |  |

extern

Add outer product of a vector to the matrix.

Parameters

  X | dense symmetric matrix
  alpha | scalar multiple of outer product
  V | vector.

Definition at line 275 of file dsdpxmat.c.

Referenced by DSDPDataMatCheck(), DSDPVMatCheck(), SDPConeComputeHessian(), and SDPConeComputeXX().

## DSDPVMatCheck()

int DSDPVMatCheck | ( | DSDPVMat | X,
|  | SDPConeVec | W1,
|  | SDPConeVec | W2
| ) |  |

extern

Test correctness of operations.

Parameters

  X | dense symmetric matrix
  W1 | work vector
  W2 | work vector

Definition at line 327 of file dsdpxmat.c.

## DSDPVMatDestroy()

int DSDPVMatDestroy | ( | DSDPVMat * | X | ) |

extern

Deallocate matrix.

Parameters

  X | dense symmetric matrix

Definition at line 86 of file dsdpxmat.c.

Referenced by DSDPBlockTakeDown(), and SDPConeClearVMatrix().

## DSDPVMatExist()

int DSDPVMatExist | ( | DSDPVMat | X,
|  | int * | flag
| ) |  |

extern

Answer whether the array has been allocated or not.

Parameters

  X | dense symmetric matrix
  flag | true if the array has been allocated

Definition at line 440 of file dsdpxmat.c.

Referenced by DSDPBlockSetup().

## DSDPVMatGetArray()

int DSDPVMatGetArray | ( | DSDPVMat | X,
|  | double ** | v,
|  | int * | nn
| ) |  |

extern

Get the array that stores the matrix.

Parameters

  X | dense symmetric matrix
  v | array representing the matrix.
  nn | length of the array

See also
  SDPConeSetStorageFormat()

Definition at line 211 of file dsdpxmat.c.

Referenced by DSDPBlockADot(), DSDPBlockASum(), DSDPBlockFactorData(), DSDPDataMatCheck(), DSDPDSMatSetArray(), DSDPDualMatInverseAdd(), DSDPDualMatSetArray(), DSDPVMatCheck(), and DSDPVMatNormF2().

## DSDPVMatGetSize()

int DSDPVMatGetSize | ( | DSDPVMat | X,
|  | int * | n
| ) |  |

extern

Get number of rows and columns.

Parameters

  X | dense symmetric matrix
  n | number of rows and columns

Definition at line 65 of file dsdpxmat.c.

Referenced by DSDPBlockADot(), DSDPBlockASum(), DSDPBlockFactorData(), DSDPDSMatSetArray(), DSDPDualMatInverseAdd(), DSDPDualMatSetArray(), and DSDPVMatCheck().

## DSDPVMatInitialize()

int DSDPVMatInitialize | ( | DSDPVMat * | B | ) |

extern

Set pointers to null.

Parameters

  B | dense symmetric matrix

Definition at line 424 of file dsdpxmat.c.

Referenced by DSDPBlockInitialize(), DSDPVMatDestroy(), and SDPConeClearVMatrix().

## DSDPVMatMult()

int DSDPVMatMult | ( | DSDPVMat | X,
|  | SDPConeVec | Z,
|  | SDPConeVec | Y
| ) |  |

extern

Multiply X by a vector.

Parameters

  X | dense symmetric matrix
  Z | input vector
  Y | equals X * Z

Definition at line 301 of file dsdpxmat.c.

Referenced by DSDPVMatCheck().

## DSDPVMatNormF2()

int DSDPVMatNormF2 | ( | DSDPVMat | X,
|  | double * | normf2
| ) |  |

extern

Compute square of Frobenius norm of matrix.

Parameters

  X | dense symmetric matrix
  normf2 | square of Frobenious norm.

Definition at line 186 of file dsdpxmat.c.

Referenced by DSDPDataMatCheck(), DSDPVMatCheck(), and SDPConeComputeXDot().

## DSDPVMatRestoreArray()

int DSDPVMatRestoreArray | ( | DSDPVMat | X,
|  | double ** | v,
|  | int * | nn
| ) |  |

extern

Restore the array that stores the matrix.

Parameters

  X | dense symmetric matrix
  v | array representing the matrix.
  nn | length of the array

See also
  SDPConeSetStorageFormat()

Definition at line 233 of file dsdpxmat.c.

Referenced by DSDPBlockADot(), DSDPBlockASum(), DSDPBlockFactorData(), DSDPDataMatCheck(), DSDPDSMatSetArray(), DSDPDualMatInverseAdd(), DSDPDualMatSetArray(), DSDPVMatCheck(), and DSDPVMatNormF2().

## DSDPVMatScaleDiagonal()

int DSDPVMatScaleDiagonal | ( | DSDPVMat | X,
|  | double | dscale
| ) |  |

extern

Scaling diagonal is useful for inner products and norms.

Parameters

  X | dense symmetric matrix
  dscale | Semidefinite blocks scale the diagonal by half before taking the dot product with the data matrices.

Definition at line 147 of file dsdpxmat.c.

Referenced by DSDPBlockADot(), DSDPDataMatCheck(), DSDPVMatCheck(), and SDPConeComputeX3().

## DSDPVMatSetData()

int DSDPVMatSetData | ( | DSDPVMat * | X,
|  | struct DSDPVMat_Ops * | ops,
|  | void * | data
| ) |  |

extern

Set opaque pointer an function pointers.

Parameters

  X | dense symmetric matrix
  ops | function pointers
  data | pointer to a matrix structure.

Definition at line 39 of file dsdpxmat.c.

Referenced by DSDPMakeVMat(), DSDPMakeVMatWithArray(), and DSDPVMatInitialize().

## DSDPVMatShiftDiagonal()

int DSDPVMatShiftDiagonal | ( | DSDPVMat | X,
|  | double | dadd
| ) |  |

extern

Add something to diagonal elements.

Parameters

  X | dense symmetric matrix
  dadd |

Definition at line 166 of file dsdpxmat.c.

Referenced by DSDPVMatCheck(), and SDPConeComputeX3().

## DSDPVMatTest()

int DSDPVMatTest | ( | DSDPVMat | X | ) |

extern

Test validity of matrix.

Parameters

  X | dense symmetric matrix

Definition at line 402 of file dsdpxmat.c.

Referenced by DSDPVMatSetData().

## DSDPVMatView()

int DSDPVMatView | ( | DSDPVMat | X | ) |

extern

Print matrix.

Parameters

  X | dense symmetric matrix

Definition at line 107 of file dsdpxmat.c.

Referenced by DSDPDataMatCheck().

## DSDPVMatZeroEntries()

int DSDPVMatZeroEntries | ( | DSDPVMat | X | ) |

extern

Zero matrix.

Parameters

  X | dense symmetric matrix

Definition at line 125 of file dsdpxmat.c.

Referenced by DSDPDataMatCheck(), DSDPVMatCheck(), SDPConeComputeHessian(), SDPConeComputeRHS(), SDPConeComputeSS(), SDPConeComputeXX(), and SDPConeMultiply().