//public static Signal Constant(Context context, ValueStructure value) //{ // Signal s = new Signal(context, value); // s.Label = "Constant_" + value.ToString(); // s.AddConstraint(Properties.ConstantSignalProperty.Instance); // return s; //} public static bool IsConstant(Signal signal) { if (signal == null) { throw new ArgumentNullException("signal"); } return(signal.AskForProperty("Constant", "Std")); }
//public static bool IsConstantZero(Signal signal) //{ // return IsConstant(signal) && (signal.Value.ToString() == "0"); //} //public static bool IsConstantOne(Signal signal) //{ // return IsConstant(signal) && (signal.Value.ToString() == "1"); //} /// <summary> /// Whether the signal is restricted to be an integer > 0, that is one of 1,2,3,... /// </summary> public static bool IsAlwaysPositiveInteger(Signal signal) { if (signal == null) { throw new ArgumentNullException("signal"); } return(signal.AskForProperty("PositiveIntegerSet", "Std") || IsConstant(signal) && IntegerValue.Converter.CanConvertLosslessFrom(signal.Value) && IntegerValue.ConvertFrom(signal.Value).Value > 0); }
public static bool IsAlwaysRational(Signal signal) { if (signal == null) { throw new ArgumentNullException("signal"); } return(signal.AskForProperty("RationalSet", "Std") || IsConstant(signal) && RationalValue.Converter.CanConvertLosslessFrom(signal.Value) || IsAlwaysInteger(signal)); }
public static bool IsAlwaysReal(Signal signal) { return(signal.AskForProperty("RealSet", "Std") || IsConstant(signal) && RealValue.Converter.CanConvertLosslessFrom(signal.Value) || IsAlwaysRational(signal)); }
/// <summary> /// Whether the signal is restricted to be an integer, that is one of ...,-3,-2,-1,0,1,2,3,... /// </summary> public static bool IsAlwaysInteger(Signal signal) { return(signal.AskForProperty("IntegerSet", "Std") || IsConstant(signal) && IntegerValue.Converter.CanConvertLosslessFrom(signal.Value) || IsAlwaysNonnegativeInteger(signal)); }
//public static Signal Constant(Context context, ValueStructure value) //{ // Signal s = new Signal(context, value); // s.Label = "Constant_" + value.ToString(); // s.Properties.AddProperty(Properties.ConstantSignalProperty.Instance); // return s; //} public static bool IsConstant(Signal signal) { return(signal.AskForProperty("Constant", "Std")); }