concave conc_new(list l, prec_t prec)
Computes the concave cover of the graph of a list l sorted in decreasing order.
concave_struct * concave
Convenience pointer to concave_struct.
bool conc_range_der(concave f, real_t la)
Computes the range of indexes in f->allPow to use for evaluating the derivative of the original polyn...
bool conc_range(concave f, real_t la)
Computes the range of indexes in f->allPow to use for evaluating the original polynomial at z with la...
bool conc_free(concave f)
Frees all the memory used by the concave map f, assuming the struct has been allocated with malloc(),...
Definition of a list that can quickly sort real machine floating-point numbers and keep track of thei...
list_struct list_t[1]
Practical wrapper for list_struct.
Definition of basic types.
double real_t
The machine number type to use for polynomial analysis and preconditionning.
ulong deg_t
The integer number type to use for polynomial degrees and indexes.
ulong prec_t
The integer number type to use for polynomial degrees and indexes.
Description of a concave function computed from the coefficients of some polynomial.
list_t def
the definition of the concave map
deg_t mid
the position in allPow of the power which gives the maximum modulus
prec_t prec
the precision that will be used to evaluate the polynomial, excluding extraBits
deg_t end
the position in allPow of the least power to evaluate (for given slope)
prec_t extraBits
extra bits for guarding, depending on the degree of the polynomial
list_t all
all terms of the polynomial that may be used for evaluation
deg_t start
the position in allPow of the largest power to evaluate (for given slope)
A list of real numbers that can be sorted, while keeping track of original order.