1 2\ttindextype{INEQ\_SOLVE}{operator} 3%This package supports the operator \f{ineq\_solve} that 4%tries to solves single inequalities and sets of coupled inequalities. 5The following types of systems are supported : 6\begin{itemize} 7\item only numeric coefficients (no parametric system), 8\item a linear system of mixed equations and $<=$ -- $>=$ 9 inequalities, applying the method of Fourier and Motzkin 10 \footnote{described by G.B. Dantzig in {\em Linear Programming 11 and Extensions.}}, 12\item a univariate inequality with $<=$, $>=$, $>$ or $<$ operator 13 and polynomial or rational left--hand and right--hand sides, 14 or a system of such inequalities with only one variable. 15\end{itemize} 16For linear optimization problems please use the operator 17\f{simplex} of the \textsc{Linalg} package (cf. section \ref{LINALG}). 18 19Syntax: 20\begin{syntax} 21 \texttt{INEQ\_SOLVE(\meta{expr} [,\,\meta{vl}])} 22\end{syntax} 23where $<$expr$>$ is an inequality or a list of coupled inequalities 24and equations, and the optional argument $<$vl$>$ is a single 25variable (kernel) or a list of variables (kernels). If not 26specified, they are extracted automatically from $<$expr$>$. 27For multivariate input an explicit variable list specifies the 28elimination sequence: the last member is the most specific one. 29 30An error message occurs if the input cannot be processed by the 31currently implemented algorithms. 32 33The result is a list. It is empty if the system has no feasible solution. 34Otherwise the result presents the admissible ranges as set 35of equations where each variable is equated to 36one expression or to an interval. 37The most specific variable is the first one in the result list and 38each form contains only preceding variables (resolved form). 39The interval limits can be formal \textbf{max} or \textbf{min} expressions. 40Algebraic numbers are encoded as rounded number approximations. 41 42\noindent 43\textbf{Examples}: 44\begin{verbatim} 45ineq_solve({(2*x^2+x-1)/(x-1) >= (x+1/2)^2, x>0}); 46 47{x=(0 .. 0.326583),x=(1 .. 2.56777)} 48 49 reg:= 50 {a + b - c>=0, a - b + c>=0, - a + b + c>=0, 0>=0, 2>=0, 51 2*c - 2>=0, a - b + c>=0, a + b - c>=0, - a + b + c - 2>=0, 52 2>=0, 0>=0, 2*b - 2>=0, k + 1>=0, - a - b - c + k>=0, 53 - a - b - c + k + 2>=0, - 2*b + k>=0, 54 - 2*c + k>=0, a + b + c - k>=0, 55 2*b + 2*c - k - 2>=0, a + b + c - k>=0}$ 56 57ineq_solve (reg,{k,a,b,c}); 58 59{c=(1 .. infinity), 60 61 b=(1 .. infinity), 62 63 a=(max( - b + c,b - c) .. b + c - 2), 64 65 k=a + b + c} 66\end{verbatim} 67 68 69