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.