## org.apache.commons.math.optimization.linear
Class LinearConstraint

    java.lang.Object
      org.apache.commons.math.optimization.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:
  $Revision: 922713 $ $Date: 2010-03-13 20:26:13 -0500 (Sat, 13 Mar 2010) $
See Also:
  Serialized Form

Field Summary
`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
`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
`boolean` `equals(java.lang.Object other)`
`RealVector` `getCoefficients()` Get the coefficients of the constraint (left hand side).
`Relationship` `getRelationship()` Get the relationship between left and right hand sides.
`double` `getValue()` Get 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()

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

  Returns:
    coefficients of the constraint (left hand side)

### getRelationship

    public Relationship getRelationship()

  Get the relationship between left and right hand sides.

  Returns:
    relationship between left and right hand sides

### getValue

    public double getValue()

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

  Returns:
    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

Copyright (c) 2003-2010 Apache Software Foundation