package osdp

  1. Overview
  2. Docs
module Scalar = Scalar.Q

The scalars used for preprocessing (the SDP solver uses floats anyway).

Extended formulation.

type vector = (int * Scalar.t) list
type 'a obj_ext = vector * 'a Sdp.block_diag
type 'a constr_ext = vector * 'a Sdp.block_diag * Scalar.t * Scalar.t
val solve_ext_sparse : ?options:Sdp.options -> ?solver:Sdp.solver -> Sdp.sparse_matrix obj_ext -> Sdp.sparse_matrix constr_ext list -> Sdp.bounds -> SdpRet.t * (float * float) * (vector * Sdp.matrix Sdp.block_diag * float array * Sdp.matrix Sdp.block_diag)

See Sdp.solve_ext_sparse for details. The only difference is that redundant free variables are handled before calling the SDP solver. That is, when a constraint of the form x_i + \sum_j x_j = 0 appears, the SDP solver is only asked about the variables x_j and the variable x_i will be recomputed from its answer as -\sum_j x_j.

Printing functions.

val pp_obj_ext : (Stdlib.Format.formatter -> 'a -> unit) -> Stdlib.Format.formatter -> 'a obj_ext -> unit
val pp_constr_ext : (Stdlib.Format.formatter -> 'a -> unit) -> Stdlib.Format.formatter -> 'a constr_ext -> unit
val pp_ext_sparse : Stdlib.Format.formatter -> (Sdp.sparse_matrix obj_ext * Sdp.sparse_matrix constr_ext list * Sdp.bounds) -> unit
OCaml

Innovation. Community. Security.