
LINCON linear_constraint-1 <…,linear_constraint-n>;
LINEAR linear_constraint-1 <…,linear_constraint-n>;
where linear_constraint has the form
linear_expression-l type linear_expression-r
where linear_expression has the form
<+|->linear_term-1 <…, (+|-) linear_term-n>
where linear_term has the form
(variable | number<* variable>)
The keyword type can be one of the following:
<, <=, =, >=, >, <>, LT, LE, EQ, GE, GT, NE
The LINCON statement allows for a very general specification of linear constraints. In particular, it allows for specification of the following types of equality or inequality constraints:
![\[ \sum _{j=1}^ n a_{ij} x_ j \: \{ \le | < | = | \ge | > | \ne \} \: b_ i \quad \mr{for} \; i=1,\ldots ,m \]](images/orcpug_clp0072.png)
For example, the constraint
can be expressed as
var x1 x2; lincon 4 * x1 - 3 * x2 = 5;
and the constraints
![\[ \begin{array}{rcl} 10x_1 - x_2 & \geq & 10 \\ x_1 + 5x_2 & \ne & 15 \end{array} \]](images/orcpug_clp0074.png)
can be expressed as
var x1 x2;
lincon 10 <= 10 * x1 - x2,
x1 + 5 * x2 <> 15;
Note that variables can be specified on either side of an equality or inequality in a LINCON statement. Linear constraints can also be specified by using the CONDATA= data set.
Regardless of the specification, you must define the variables by using a VARIABLE statement or implicitly by specifying the USECONDATAVARS= option.
User-specified scalar values are subject to rounding based upon a platform-dependent tolerance.