本文整理汇总了C#中IVariable.Select方法的典型用法代码示例。如果您正苦于以下问题:C# IVariable.Select方法的具体用法?C# IVariable.Select怎么用?C# IVariable.Select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IVariable
的用法示例。
在下文中一共展示了IVariable.Select方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CalculateForTwoVariables
private static IVariable CalculateForTwoVariables(IMilpManager milpManager, OperationType type, IVariable[] arguments)
{
if (arguments.All(a => a.IsConstant()))
{
var values = arguments.Select(a => a.ConstantValue.Value);
var result = type == OperationType.Maximum ? values.Max() : values.Min();
if (arguments.All(a => a.IsInteger()))
{
return milpManager.FromConstant((int) result);
}
else
{
return milpManager.FromConstant(result);
}
}
var first = arguments[0];
var second = arguments[1];
IVariable max = milpManager.CreateAnonymous(CalculateDomain(arguments));
IVariable min = milpManager.CreateAnonymous(CalculateDomain(arguments));
max.Set(ConstraintType.GreaterOrEqual, first);
max.Set(ConstraintType.GreaterOrEqual, second);
min.Set(ConstraintType.LessOrEqual, first);
min.Set(ConstraintType.LessOrEqual, second);
max.Operation(OperationType.Subtraction, min)
.Set(ConstraintType.Equal,
first.Operation(OperationType.Subtraction, second).Operation(OperationType.AbsoluteValue));
max.ConstantValue = arguments.All(a => a.ConstantValue.HasValue)
? Math.Max(arguments[0].ConstantValue.Value, arguments[1].ConstantValue.Value)
: (double?)null;
min.ConstantValue = arguments.All(a => a.ConstantValue.HasValue)
? Math.Min(arguments[0].ConstantValue.Value, arguments[1].ConstantValue.Value)
: (double?)null;
max.Expression = $"max({arguments[0].FullExpression()}, {arguments[1].FullExpression()}";
min.Expression = $"min({arguments[0].FullExpression()}, {arguments[1].FullExpression()}";
return type == OperationType.Maximum ? max : min;
}