Home | History | Annotate | Download | only in linear
      1 /*
      2  * Licensed to the Apache Software Foundation (ASF) under one or more
      3  * contributor license agreements.  See the NOTICE file distributed with
      4  * this work for additional information regarding copyright ownership.
      5  * The ASF licenses this file to You under the Apache License, Version 2.0
      6  * (the "License"); you may not use this file except in compliance with
      7  * the License.  You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 
     18 package org.apache.commons.math.optimization.linear;
     19 
     20 /**
     21  * Types of relationships between two cells in a Solver {@link LinearConstraint}.
     22  * @version $Revision: 1003886 $ $Date: 2010-10-02 23:04:44 +0200 (sam. 02 oct. 2010) $
     23  * @since 2.0
     24  */
     25 public enum Relationship {
     26 
     27     /** Equality relationship. */
     28     EQ("="),
     29 
     30     /** Lesser than or equal relationship. */
     31     LEQ("<="),
     32 
     33     /** Greater than or equal relationship. */
     34     GEQ(">=");
     35 
     36     /** Display string for the relationship. */
     37     private final String stringValue;
     38 
     39     /** Simple constructor.
     40      * @param stringValue display string for the relationship
     41      */
     42     private Relationship(String stringValue) {
     43         this.stringValue = stringValue;
     44     }
     45 
     46     /** {@inheritDoc} */
     47     @Override
     48     public String toString() {
     49         return stringValue;
     50     }
     51 
     52     /**
     53      * Get the relationship obtained when multiplying all coefficients by -1.
     54      * @return relationship obtained when multiplying all coefficients by -1
     55      */
     56     public Relationship oppositeRelationship() {
     57         switch (this) {
     58         case LEQ :
     59             return GEQ;
     60         case GEQ :
     61             return LEQ;
     62         default :
     63             return EQ;
     64         }
     65     }
     66 
     67 }
     68