sig
type sparse_matrix = (int * int * float) list
type matrix = float array array
type 'a block_diag = (int * 'a) list
val matrix_of_sparse : Sdp.sparse_matrix -> Sdp.matrix
val matrix_to_sparse : Sdp.matrix -> Sdp.sparse_matrix
val block_diag_of_sparse :
Sdp.sparse_matrix Sdp.block_diag -> Sdp.matrix Sdp.block_diag
val block_diag_to_sparse :
Sdp.matrix Sdp.block_diag -> Sdp.sparse_matrix Sdp.block_diag
type solver = Sdp_default.solver = Csdp | Mosek | Sdpa | SdpaGmp | SdpaDd
type options = {
solver : Sdp.solver;
verbose : int;
max_iteration : int;
stop_criterion : float;
initial : float;
precision : int;
}
val default : Sdp.options
type 'a obj = 'a Sdp.block_diag
type 'a constr =
Eq of 'a Sdp.block_diag * float
| Le of 'a Sdp.block_diag * float
| Ge of 'a Sdp.block_diag * float
val solve_sparse :
?options:Sdp.options ->
?solver:Sdp.solver ->
?init:Sdp.matrix Sdp.block_diag * float array * Sdp.matrix Sdp.block_diag ->
Sdp.sparse_matrix Sdp.obj ->
Sdp.sparse_matrix Sdp.constr list ->
SdpRet.t * (float * float) *
(Sdp.matrix Sdp.block_diag * float array * Sdp.matrix Sdp.block_diag)
val solve :
?options:Sdp.options ->
?solver:Sdp.solver ->
?init:Sdp.matrix Sdp.block_diag * float array * Sdp.matrix Sdp.block_diag ->
Sdp.matrix Sdp.obj ->
Sdp.matrix Sdp.constr list ->
SdpRet.t * (float * float) *
(Sdp.matrix Sdp.block_diag * float array * Sdp.matrix Sdp.block_diag)
type vector = (int * float) list
type 'a obj_ext = Sdp.vector * 'a Sdp.block_diag
type 'a constr_ext = Sdp.vector * 'a Sdp.block_diag * float * float
type bounds = (int * float * float) list
val solve_ext_sparse :
?options:Sdp.options ->
?solver:Sdp.solver ->
Sdp.sparse_matrix Sdp.obj_ext ->
Sdp.sparse_matrix Sdp.constr_ext list ->
Sdp.bounds ->
SdpRet.t * (float * float) *
(Sdp.vector * Sdp.matrix Sdp.block_diag * float array *
Sdp.matrix Sdp.block_diag)
val solve_ext :
?options:Sdp.options ->
?solver:Sdp.solver ->
Sdp.matrix Sdp.obj_ext ->
Sdp.matrix Sdp.constr_ext list ->
Sdp.bounds ->
SdpRet.t * (float * float) *
(Sdp.vector * Sdp.matrix Sdp.block_diag * float array *
Sdp.matrix Sdp.block_diag)
val pp_sparse_matrix : Stdlib.Format.formatter -> Sdp.sparse_matrix -> unit
val pp_matrix : Stdlib.Format.formatter -> Sdp.matrix -> unit
val pp_block_diag :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a Sdp.block_diag -> unit
val pp_obj :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a Sdp.obj -> unit
val pp_constr :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a Sdp.constr -> unit
val pp_sparse :
Stdlib.Format.formatter ->
Sdp.sparse_matrix Sdp.obj * Sdp.sparse_matrix Sdp.constr list -> unit
val pp :
Stdlib.Format.formatter ->
Sdp.matrix Sdp.obj * Sdp.matrix Sdp.constr list -> unit
val pp_vector : Stdlib.Format.formatter -> Sdp.vector -> unit
val pp_obj_ext :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a Sdp.obj_ext -> unit
val pp_constr_ext :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a Sdp.constr_ext -> unit
val pp_bounds : Stdlib.Format.formatter -> Sdp.bounds -> unit
val pp_ext_sparse :
Stdlib.Format.formatter ->
Sdp.sparse_matrix Sdp.obj_ext * Sdp.sparse_matrix Sdp.constr_ext list *
Sdp.bounds -> unit
val pp_ext :
Stdlib.Format.formatter ->
Sdp.matrix Sdp.obj_ext * Sdp.matrix Sdp.constr_ext list * Sdp.bounds ->
unit
val pp_ext_sparse_sedumi :
Stdlib.Format.formatter ->
Sdp.sparse_matrix Sdp.obj_ext * Sdp.sparse_matrix Sdp.constr_ext list *
Sdp.bounds -> unit
val pp_ext_sedumi :
Stdlib.Format.formatter ->
Sdp.matrix Sdp.obj_ext * Sdp.matrix Sdp.constr_ext list * Sdp.bounds ->
unit
val pfeas_stop_crit :
?options:Sdp.options -> ?solver:Sdp.solver -> float list -> float
end