sig
module Scalar :
sig
type t = Q.t
val compare : t -> t -> int
val zero : t
val one : t
val of_float : float -> t
val to_float : t -> float
val of_q : Q.t -> t
val to_q : t -> Q.t
val add : t -> t -> t
val sub : t -> t -> t
val mult : t -> t -> t
val div : t -> t -> t
val pp : Format.formatter -> t -> unit
val minus_one : t
val of_int : int -> t
val neg : t -> t
val inv : t -> t
val equal : t -> t -> bool
val leq : t -> t -> bool
val geq : t -> t -> bool
val lt : t -> t -> bool
val gt : t -> t -> bool
val sign : t -> int
val ( ~- ) : t -> t
val ( + ) : t -> t -> t
val ( - ) : t -> t -> t
val ( * ) : t -> t -> t
val ( / ) : t -> t -> t
val ( = ) : t -> t -> bool
val ( <> ) : t -> t -> bool
val ( <= ) : t -> t -> bool
val ( >= ) : t -> t -> bool
val ( < ) : t -> t -> bool
val ( > ) : t -> t -> bool
end
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)
val pp_obj_ext :
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a obj_ext -> unit
val pp_constr_ext :
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a constr_ext -> unit
val pp_ext_sparse :
Format.formatter ->
Sdp.sparse_matrix obj_ext * Sdp.sparse_matrix constr_ext list *
Sdp.bounds -> unit
end