// w is a variable and y is a parameter public IConstraints5UConstraintElement Create( IjIndexElement jIndexElement, IrIndexElement rIndexElement, IsIndexElement sIndexElement, Interfaces.Parameters.SurgicalSpecialtyNumberAssignedTimeBlocks.IB BBar, Interfaces.Parameters.SurgeonNumberAssignedTimeBlocks.IB Bs, Interfaces.Parameters.SurgeonOperatingRoomAssignments.Iy y, Interfaces.Variables.Iw w) { IConstraints5UConstraintElement constraintElement = null; try { constraintElement = new Constraints5UConstraintElement( jIndexElement, rIndexElement, sIndexElement, BBar, Bs, y, w); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
// Constructor: w and y are both variables (x11) public Constraints5UConstraintElement( IjIndexElement jIndexElement, IrIndexElement rIndexElement, IsIndexElement sIndexElement, Interfaces.Parameters.SurgicalSpecialtyNumberAssignedTimeBlocks.IB BBar, Interfaces.Parameters.SurgeonNumberAssignedTimeBlocks.IB Bs, Interfaces.Variables.Iw w, Interfaces.Variables.Iy y) { Expression LHS = Bs.GetElementAtAsint( sIndexElement) * y.Value[sIndexElement, rIndexElement]; Expression RHS = BBar.GetElementAtAsint( jIndexElement) * w.Value[jIndexElement, rIndexElement]; this.Value = LHS <= RHS; }