package lp
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Module Lp.Poly
Source
Module for polynomial expression.
Type for the polynomial with order up to two (quadratic).
Type for the polynomial classified by orders.
type decomposed = {
const : float;
lcs : float list;
lvs : Var.t list;
qcs : float list;
qv0s : Var.t list;
qv1s : Var.t list;
}
Type for the decomposed expression of the polynomial.
Make an array of monomials of a variable with uniform bounds.
val range2 :
?integer:bool ->
?lb:float ->
?ub:float ->
?start0:int ->
?start1:int ->
int ->
int ->
string ->
t array array
Make 2D array of monomials of a variable with uniform bounds.
val range3 :
?integer:bool ->
?lb:float ->
?ub:float ->
?start0:int ->
?start1:int ->
?start2:int ->
int ->
int ->
int ->
string ->
t array array array
Make 3D array of monomials of a variable with uniform bounds.
Make an array of monomials of a binary variable.
Make 2D array of monomials of a binary variable.
val range3b :
?start0:int ->
?start1:int ->
?start2:int ->
int ->
int ->
int ->
string ->
t array array array
Make 3D array of monomials of a binary variable.
val rangev :
?integer:bool ->
?lb:float array ->
?ub:float array ->
?start:int ->
int ->
string ->
t array
Make an array of monomials of a variable with different bounds.
val range2v :
?integer:bool ->
?lb:float array array ->
?ub:float array array ->
?start0:int ->
?start1:int ->
int ->
int ->
string ->
t array array
Make 2D array of monomials of a variable with different bounds.
val range3v :
?integer:bool ->
?lb:float array array array ->
?ub:float array array array ->
?start0:int ->
?start1:int ->
?start2:int ->
int ->
int ->
int ->
string ->
t array array array
Make 3D array of monomials of a variable with different bounds.
Classify terms into three categories: quad, linear, and const (classified
).
Decompose the polynomial into decomposed
.
Simplify the polynomial. The polynomial is sorted and terms with same variables are accumulated. After that, near-zero terms are dropped. eps
specifies the threshold of near-zero, defaulting to 10. *. epsilon_float.
take quad coefficient of the variables in a polynomial.
Multiply two polynomials. Specifically, performs polynomial expansion.
Divide polynomial by a univariate polynomial. Be careful as this function raises exception in some cases.
with_bound name
lb
ub
transforms the bounds of the variable name
with lb
and ub
.
to_integer name
transforms the variable name
into general integer variable.
to_binary name
transforms the variable name
into binary variable.
Apply a function to all terms in the polynomial and build a list.
Apply a function only to linear terms in the polynomial and build a list.
Apply a function to all terms in the polynomial and build a list.
Apply a function to all terms in the polynomial.
Apply a function only to linear terms in the polynomial. * non-linear terms are just ignored.
Apply a function only to linear terms in the polynomial.