// w is a parameter and y is a variable public IConstraints5UConstraintElement Create( IjIndexElement jIndexElement, IrIndexElement rIndexElement, IsIndexElement sIndexElement, Interfaces.Parameters.SurgicalSpecialtyNumberAssignedTimeBlocks.IB BBar, Interfaces.Parameters.SurgeonNumberAssignedTimeBlocks.IB Bs, Interfaces.Parameters.SurgicalSpecialtyOperatingRoomAssignments.Iw w, Interfaces.Variables.Iy y) { IConstraints5UConstraintElement constraintElement = null; try { constraintElement = new Constraints5UConstraintElement( jIndexElement, rIndexElement, sIndexElement, BBar, Bs, w, y); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
// v is a parameter and y is a variable public IConstraints1ConstraintElement Create( ImIndexElement mIndexElement, IrIndexElement rIndexElement, Im m, Is s, Interfaces.Parameters.MachineOperatingRoomAssignments.Iv v, Iζ ζ, Interfaces.Variables.Iy y) { IConstraints1ConstraintElement constraintElement = null; try { constraintElement = new Constraints1ConstraintElement( mIndexElement, rIndexElement, m, s, v, ζ, y); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(constraintElement); }
// Constructor: v is a parameter and y is a variable (0x1) public Constraints1ConstraintElement( ImIndexElement mIndexElement, IrIndexElement rIndexElement, Im m, Is s, Interfaces.Parameters.MachineOperatingRoomAssignments.Iv v, Iζ ζ, Interfaces.Variables.Iy y) { Expression LHS = Expression.Sum( s.Value .Select( x => y.Value[x, rIndexElement] * ζ.GetElementAtAsint( x, mIndexElement))); int RHS = m.GetM() * v.GetElementAtAsint( mIndexElement, rIndexElement); this.Value = LHS <= RHS; }
// Constructor: y is a variable (xx1) public Constraints5LConstraintElement( IrIndexElement rIndexElement, IsIndexElement sIndexElement, Interfaces.Variables.Ib b, Interfaces.Variables.Iy y) { Expression LHS = y.Value[sIndexElement, rIndexElement]; Expression RHS = b.Value[sIndexElement, rIndexElement]; this.Value = LHS <= RHS; }
// Constructor: y is a variable (xx1) public Constraints5MConstraintElement( IrIndexElement rIndexElement, IsIndexElement sIndexElement, IB B, Interfaces.Variables.Ib b, Interfaces.Variables.Iy y) { Expression LHS = b.Value[sIndexElement, rIndexElement]; Expression RHS = B.GetElementAtAsint( sIndexElement) * y.Value[sIndexElement, rIndexElement]; this.Value = LHS <= RHS; }
// 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; }
// Constructor: v and y are both variables (1x1) public Constraints1ConstraintElement( ImIndexElement mIndexElement, IrIndexElement rIndexElement, Im m, Is s, Iζ ζ, Interfaces.Variables.Iv v, Interfaces.Variables.Iy y) { Expression LHS = Expression.Sum( s.Value .Select( x => y.Value[x, rIndexElement] * ζ.GetElementAtAsint( x, mIndexElement))); Expression RHS = m.GetM() * v.Value[mIndexElement, rIndexElement]; this.Value = LHS <= RHS; }