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 * https://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 /* 19 * This is not the original file distributed by the Apache Software Foundation 20 * It has been modified by the Hipparchus project 21 */ 22 package org.hipparchus.optim.linear; 23 24 /** 25 * Types of relationships between two cells in a Solver {@link LinearConstraint}. 26 * 27 */ 28 public enum Relationship { 29 /** Equality relationship. */ 30 EQ("="), 31 /** Lesser than or equal relationship. */ 32 LEQ("<="), 33 /** Greater than or equal relationship. */ 34 GEQ(">="); 35 36 /** Display string for the relationship. */ 37 private final String stringValue; 38 39 /** 40 * Simple constructor. 41 * 42 * @param stringValue Display string for the relationship. 43 */ 44 Relationship(String stringValue) { 45 this.stringValue = stringValue; 46 } 47 48 /** {@inheritDoc} */ 49 @Override 50 public String toString() { 51 return stringValue; 52 } 53 54 /** 55 * Gets the relationship obtained when multiplying all coefficients by -1. 56 * 57 * @return the opposite relationship. 58 */ 59 public Relationship oppositeRelationship() { 60 switch (this) { 61 case LEQ : 62 return GEQ; 63 case GEQ : 64 return LEQ; 65 default : 66 return EQ; 67 } 68 } 69 }