package osdp

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

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)

See Sdp.solve_ext_sparse for details. TODO : explain, explain we return only primal solution

module ScalarLinExpr : LinExpr.S with module Coeff = Scalar

TODO: doc

type 'a details_val =
  1. | DV of 'a
  2. | DVexpr of ScalarLinExpr.t
type details = (int * Ident.t) list * Ident.t array array Sdp.block_diag * float details_val Osdp.Ident.Map.t
val solve_ext_sparse_details : ?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) * details

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