org.apache.commons.math3.optim.linear

## Class LinearConstraint

- java.lang.Object
- - org.apache.commons.math3.optim.linear.LinearConstraint

All Implemented Interfaces:
  java.io.Serializable

    public class LinearConstraint
    extends java.lang.Object
    implements java.io.Serializable

A linear constraint for a linear optimization problem.

A linear constraint has one of the forms:

- c1x1 + ... cnxn = v
- c1x1 + ... cnxn <= v
- c1x1 + ... cnxn >= v
- l1x1 + ... lnxn + lcst = r1x1 + ... rnxn + rcst
- l1x1 + ... lnxn + lcst <= r1x1 + ... rnxn + rcst
- l1x1 + ... lnxn + lcst >= r1x1 + ... rnxn + rcst

The ci, li or ri are the coefficients of the constraints, the xi are the coordinates of the current point and v is the value of the constraint.

Since:
  2.0
Version:
  $Id: LinearConstraint.java 1416643 2012-12-03 19:37:14Z tn $
See Also:
  Serialized Form

### Field Summary

Fields
`private RealVector` `coefficients` Coefficients of the constraint (left hand side).
`private Relationship` `relationship` Relationship between left and right hand sides (=, <=, >=).
`private static long` `serialVersionUID` Serializable version identifier.
`private double` `value` Value of the constraint (right hand side).

### Constructor Summary

Constructors
Constructor and Description
`LinearConstraint(double[] lhsCoefficients, double lhsConstant, Relationship relationship, double[] rhsCoefficients, double rhsConstant)` Build a constraint involving two linear equations.
`LinearConstraint(double[] coefficients, Relationship relationship, double value)` Build a constraint involving a single linear equation.
`LinearConstraint(RealVector lhsCoefficients, double lhsConstant, Relationship relationship, RealVector rhsCoefficients, double rhsConstant)` Build a constraint involving two linear equations.
`LinearConstraint(RealVector coefficients, Relationship relationship, double value)` Build a constraint involving a single linear equation.

### Method Summary

Methods
`boolean` `equals(java.lang.Object other)`
`RealVector` `getCoefficients()` Gets the coefficients of the constraint (left hand side).
`Relationship` `getRelationship()` Gets the relationship between left and right hand sides.
`double` `getValue()` Gets the value of the constraint (right hand side).
`int` `hashCode()`
`private void` `readObject(java.io.ObjectInputStream ois)` Deserialize the instance.
`private void` `writeObject(java.io.ObjectOutputStream oos)` Serialize the instance.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier.

See Also:
  Constant Field Values

#### coefficients

    private final transient RealVector coefficients

Coefficients of the constraint (left hand side).

#### relationship

    private final Relationship relationship

Relationship between left and right hand sides (=, <=, >=).

#### value

    private final double value

Value of the constraint (right hand side).

### Constructor Detail

#### LinearConstraint

    public LinearConstraint(double[] coefficients,
                    Relationship relationship,
                    double value)

Build a constraint involving a single linear equation.

A linear constraint with a single linear equation has one of the forms:

- c1x1 + ... cnxn = v
- c1x1 + ... cnxn <= v
- c1x1 + ... cnxn >= v

Parameters:
  `coefficients` - The coefficients of the constraint (left hand side)
  `relationship` - The type of (in)equality used in the constraint
  `value` - The value of the constraint (right hand side)

#### LinearConstraint

    public LinearConstraint(RealVector coefficients,
                    Relationship relationship,
                    double value)

Build a constraint involving a single linear equation.

A linear constraint with a single linear equation has one of the forms:

- c1x1 + ... cnxn = v
- c1x1 + ... cnxn <= v
- c1x1 + ... cnxn >= v

Parameters:
  `coefficients` - The coefficients of the constraint (left hand side)
  `relationship` - The type of (in)equality used in the constraint
  `value` - The value of the constraint (right hand side)

#### LinearConstraint

    public LinearConstraint(double[] lhsCoefficients,
                    double lhsConstant,
                    Relationship relationship,
                    double[] rhsCoefficients,
                    double rhsConstant)

Build a constraint involving two linear equations.

A linear constraint with two linear equation has one of the forms:

- l1x1 + ... lnxn + lcst = r1x1 + ... rnxn + rcst
- l1x1 + ... lnxn + lcst <= r1x1 + ... rnxn + rcst
- l1x1 + ... lnxn + lcst >= r1x1 + ... rnxn + rcst

Parameters:
  `lhsCoefficients` - The coefficients of the linear expression on the left hand side of the constraint
  `lhsConstant` - The constant term of the linear expression on the left hand side of the constraint
  `relationship` - The type of (in)equality used in the constraint
  `rhsCoefficients` - The coefficients of the linear expression on the right hand side of the constraint
  `rhsConstant` - The constant term of the linear expression on the right hand side of the constraint

#### LinearConstraint

    public LinearConstraint(RealVector lhsCoefficients,
                    double lhsConstant,
                    Relationship relationship,
                    RealVector rhsCoefficients,
                    double rhsConstant)

Build a constraint involving two linear equations.

A linear constraint with two linear equation has one of the forms:

- l1x1 + ... lnxn + lcst = r1x1 + ... rnxn + rcst
- l1x1 + ... lnxn + lcst <= r1x1 + ... rnxn + rcst
- l1x1 + ... lnxn + lcst >= r1x1 + ... rnxn + rcst

Parameters:
  `lhsCoefficients` - The coefficients of the linear expression on the left hand side of the constraint
  `lhsConstant` - The constant term of the linear expression on the left hand side of the constraint
  `relationship` - The type of (in)equality used in the constraint
  `rhsCoefficients` - The coefficients of the linear expression on the right hand side of the constraint
  `rhsConstant` - The constant term of the linear expression on the right hand side of the constraint

### Method Detail

#### getCoefficients

    public RealVector getCoefficients()

Gets the coefficients of the constraint (left hand side).

Returns:
  the coefficients of the constraint (left hand side).

#### getRelationship

    public Relationship getRelationship()

Gets the relationship between left and right hand sides.

Returns:
  the relationship between left and right hand sides.

#### getValue

    public double getValue()

Gets the value of the constraint (right hand side).

Returns:
  the value of the constraint (right hand side).

#### equals

    public boolean equals(java.lang.Object other)

Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### writeObject

    private void writeObject(java.io.ObjectOutputStream oos)
                      throws java.io.IOException

Serialize the instance.

Parameters:
  `oos` - stream where object should be written
Throws:
  `java.io.IOException` - if object cannot be written to stream

#### readObject

    private void readObject(java.io.ObjectInputStream ois)
                     throws java.lang.ClassNotFoundException,
                            java.io.IOException

Deserialize the instance.

Parameters:
  `ois` - stream from which the object should be read
Throws:
  `java.lang.ClassNotFoundException` - if a class in the stream cannot be found
  `java.io.IOException` - if object cannot be read from the stream