private TunedParameter <TimeSpan>[] ApplyTimeSpanOffset( TimeSpan value, TimeSpan offset, string name, string baseId, TuningStrength strength) { var positiveOffset = new TunedParameter <TimeSpan>( value, value + offset, name, baseId, string.Empty, TuningDirection.Positive, strength); if (value < offset) { return new[] { positiveOffset } } ; var negativeOffset = new TunedParameter <TimeSpan>( value, value - offset, name, baseId, string.Empty, TuningDirection.Negative, strength); return(new[] { positiveOffset, negativeOffset }); }
private TunedParameter <decimal>[] ApplyDecimalOffset( decimal value, decimal offset, string name, string baseId, TuningStrength strength) { var positiveOffset = new TunedParameter <decimal>( value, Math.Min(value + offset, 1), name, baseId, string.Empty, TuningDirection.Positive, strength); var negativeOffset = new TunedParameter <decimal>( value, Math.Max(value - offset, 0), name, baseId, string.Empty, TuningDirection.Negative, strength); return(new[] { positiveOffset, negativeOffset }); }
private TunedParameter <int>[] ApplyIntegerOffset( int value, int offset, string name, string baseId, int?min, TuningStrength strength) { var positiveOffset = new TunedParameter <int>( value, value + offset, name, baseId, string.Empty, TuningDirection.Positive, strength); var negativeOffset = new TunedParameter <int>( value, Math.Max(value - offset, min.GetValueOrDefault(0)), name, baseId, string.Empty, TuningDirection.Negative, strength); return(new[] { positiveOffset, negativeOffset }); }
public TunedParameter( T baseValue, T tunedValue, string parameterName, string baseId, string tuningParameterId, TuningDirection direction, TuningStrength strength) { this.BaseValue = baseValue; this.TunedValue = tunedValue; this.ParameterName = parameterName; this.BaseId = baseId ?? string.Empty; this.TuningParameterId = tuningParameterId ?? string.Empty; this.TuningDirection = direction; this.TuningStrength = strength; }