Go to the previous, next section.

Linear Inequality Manipulation

All the routines given in section Matrix Manipulation also apply to linear inequalities. The symbols A, B and C are of the class lin_ineq; a is a single inequality of the class constraint and m, n, i and j are integers.

num_variables();
Number of variables. Same as n().

num_constraints();
Number of Constraints. Same as m().

is_empty();
Number of Constraints is zero?

lin_ineq A(r, c);
A.init(r, c);
lin_ineq A(B);
lin_ineq A(&B);
A.init(B);
A.init(&B);
Initialize and create inequalities. More functions can be found in See section Matrix Manipulation.

coeff cf;
lin_ineq A(cf);
lin_ineq A(&cf);
A.init(cf);
A.init(&cf);
Class cf is a data structure used in dependence testing. These will convert the information in cf to the linear inequality format.

FILE * fp;
lin_ineq A(fp);
lin_ineq A(fp, i, j);
A.init(fp);
A.init(fp, i, j);
This interface provides a mechanism to read in a matrix directly from a file. The format is two integers indicating the number of rows and columns of the matrix followed by a list of integers representing the elements in row major order. All integers can only be separated by white space, tab or new lines. If the number of rows and columns are specified in the function, the file should not contain the first two integers with the same information.

A = B.conjunct(C);
A = B & C;
The function conjunct and the operator & perform a Conjunction on the two systems of inequalities.

Go to the previous, next section.