Buggy code:
class SimplexTableau implements Serializable { private static final String NEGATIVE_VAR_COLUMN_LABEL = "x-" ; private static final int DEFAULT_ULPS = 10 ; private static final long serialVersionUID = - 1369660067587938365L ; private final LinearObjectiveFunction f ; private final List < LinearConstraint > constraints ; private final boolean restrictToNonNegative ; private final List < String > columnLabels = new ArrayList < String > ( ) ; private transient RealMatrix tableau ; private final int numDecisionVariables ; private final int numSlackVariables ; private int numArtificialVariables ; private final double epsilon ; private final int maxUlps ; SimplexTableau ( final LinearObjectiveFunction f , final Collection < LinearConstraint > constraints , final GoalType goalType , final boolean restrictToNonNegative , final double epsilon ) { } SimplexTableau ( final LinearObjectiveFunction f , final Collection < LinearConstraint > constraints , final GoalType goalType , final boolean restrictToNonNegative , final double epsilon , final int maxUlps ) { } protected void initializeColumnLabels ( ) { } protected RealMatrix createTableau ( final boolean maximize ) { } public List < LinearConstraint > normalizeConstraints ( Collection < LinearConstraint > originalConstraints ) { } private LinearConstraint normalize ( final LinearConstraint constraint ) { } protected final int getNumObjectiveFunctions ( ) { } private int getConstraintTypeCounts ( final Relationship relationship ) { } protected static double getInvertedCoefficientSum ( final RealVector coefficients ) { } protected Integer getBasicRow ( final int col ) { } protected void dropPhase1Objective ( ) { if ( ( getNumObjectiveFunctions ( ) ) == 1 ) { return ; } List < Integer > columnsToDrop = new ArrayList < Integer > ( ) ; columnsToDrop . add ( 0 ) ; for ( int i = getNumObjectiveFunctions ( ) ; i < ( getArtificialVariableOffset ( ) ) ; i ++ ) { final double entry = tableau . getEntry ( 0 , i ) ; <START_BUG> if ( ( Precision . compareTo ( entry , 0.0 , maxUlps ) ) > 0 ) { <END_BUG> columnsToDrop . add ( i ) ; } } for ( int i = 0 ; i < ( getNumArtificialVariables ( ) ) ; i ++ ) { int col = i + ( getArtificialVariableOffset ( ) ) ; if ( ( getBasicRow ( col ) ) == null ) { columnsToDrop . add ( col ) ; } } double [ ] [ ] matrix = new double [ ( getHeight ( ) ) - 1 ] [ ( getWidth ( ) ) - ( columnsToDrop . size ( ) ) ] ; for ( int i = 1 ; i < ( getHeight ( ) ) ; i ++ ) { int col = 0 ; for ( int j = 0 ; j < ( getWidth ( ) ) ; j ++ ) { if ( ! ( columnsToDrop . contains ( j ) ) ) { matrix [ ( i - 1 ) ] [ ( col ++ ) ] = tableau . getEntry ( i , j ) ; } } } for ( int i = ( columnsToDrop . size ( ) ) - 1 ; i >= 0 ; i -- ) { columnLabels . remove ( ( ( int ) ( columnsToDrop . get ( i ) ) ) ) ; } this . tableau = new Array2DRowRealMatrix ( matrix ) ; this . numArtificialVariables = 0 ; } private void copyArray ( final double [ ] src , final double [ ] dest ) { } boolean isOptimal ( ) { } protected PointValuePair getSolution ( ) { } protected void divideRow ( final int dividendRow , final double divisor ) { } protected void subtractRow ( final int minuendRow , final int subtrahendRow , final double multiple ) { } protected final int getWidth ( ) { } protected final int getHeight ( ) { } protected final double getEntry ( final int row , final int column ) { } protected final void setEntry ( final int row , final int column , final double value ) { } protected final int getSlackVariableOffset ( ) { } protected final int getArtificialVariableOffset ( ) { } protected final int getRhsOffset ( ) { } protected final int getNumDecisionVariables ( ) { } protected final int getOriginalNumDecisionVariables ( ) { } protected final int getNumSlackVariables ( ) { } protected final int getNumArtificialVariables ( ) { } protected final double [ ] [ ] getData ( ) { } @ Override public boolean equals ( Object other ) { } @ Override public int hashCode ( ) { } private void writeObject ( ObjectOutputStream oos ) throws IOException { } private void readObject ( ObjectInputStream ois ) throws IOException , ClassNotFoundException { } }

Fix:
if ( ( Precision . compareTo ( entry , 0.0 , epsilon ) ) > 0 ) {