Blurb::
How to scale each linear inequality constraint

Description::
Each string in ``linear_inequality_scale_types`` indicates the scaling
type for each linear inequality constraint. They only have effect when
the associated method specifies ``scaling``.

The options are:

- 'value' - characteristic value. If this is chosen, then :dakkw:`variables-linear_inequality_scales` must be specified; 'value' is assumed if scales are given without ``scale_types``
- 'auto' - automatic scaling.

If a single string is specified it will apply to all linear inequality
constraints. Otherwise the number of strings specified should be equal
to the number of linear inequalities.

Scaling for linear constraints is applied *after* any continuous
variable scaling.

For example, for
variable scaling on continuous design variables x: 

.. math::
   \tilde{x}^j =
   \frac{x^j - x^j_O}{x^j_M} 
   
we have the following system for linear inequality constraints 

.. math::  a_L \leq A_i x \leq a_U 

.. math::
   a_L \leq
   A_i \left( \mathrm{diag}(x_M) \tilde{x} + x_O \right) \leq a_U 
   
.. math:: 
   a_L - A_i x_O \leq A_i \mathrm{diag}(x_M) \tilde{x} \leq a_U - A_i x_O

.. math::
   \tilde{a}_L \leq \tilde{A}_i \tilde{x} \leq \tilde{a}_U 
   
and user-specified or automatically computed scaling multipliers are
appplied to this final transformed system, which accounts for
continuous design variable scaling. When automatic scaling is in use
for linear constraints they are linearly scaled by a computed
characteristic value, but not affinely to [0,1].

See the scaling information under specific methods, e.g., ``method-*-scaling`` for details on how to use this keyword.

Topics::
linear_constraints

Examples::

Theory::

Faq::

See_Also::
