public static int GetFrequency(ITashaHousehold household, Activity activity, Random random, int maxFreq, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments) { bool feasibleFreq = false; int freq = maxFreq; while (!feasibleFreq) { freq = Distribution.GetRandomFrequencyValue( 0, Distribution.NumberOfFrequencies - 1, random, Distribution.GetDistributionID(household, activity), householdPD, workPD, generationAdjustments); if (freq == 0) { feasibleFreq = true; } if (!Distribution.GetRandomStartTimeFrequency( Distribution.GetDistributionID(household, activity), freq, 0, Scheduler.StartTimeQuanta - 1, random, out Time startTime)) { // a bad thing happens here } else if (startTime != Time.StartOfDay) { feasibleFreq = true; } } return(freq); }
public static int GetFrequency(ITashaPerson person, Activity activity, Random random, int maxFrequency, Time startTime, Time endTime, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments) { bool feasibleFreq = false; int freq = 0; while (!feasibleFreq) { freq = Distribution.GetRandomFrequencyValue( 0, maxFrequency, random, Distribution.GetDistributionID(person, activity), householdPD, workPD, generationAdjustments); if (freq == 0) { break; } if (!Distribution.GetRandomStartTimeFrequency( Distribution.GetDistributionID(person, activity), freq, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out Time duration)) { //a bad thing happens here } else if (duration != Time.Zero) { feasibleFreq = true; } } return(freq); }
internal static bool GetStartTime(ITashaHousehold household, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time ourStartTime) { return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(household, activity), frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out ourStartTime)); }
internal static bool GetStartTime(ITashaHousehold household, Activity activity, int frequency, Random random, out Time startTime) { return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(household, activity), frequency, 0, Scheduler.StartTimeQuanta - 1, random, out startTime)); }
/// <summary> /// Gets a startTime between the given startTime and endTime /// </summary> /// <param name="person"></param> /// <param name="activity"></param> /// <param name="frequency"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="random"></param> /// <param name="returnTime"></param> /// <returns></returns> internal static bool GetStartTime(ITashaPerson person, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time returnTime) { return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(person, activity), frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out returnTime)); }
/// <summary> /// Gets a startTime based on the given person and activity, assumes frequency is 1 /// StartTime is between start and end of day /// </summary> /// <param name="person">The person</param> /// <param name="activity">The activity</param> /// <param name="random"></param> /// <param name="startTime"></param> /// <returns></returns> internal static bool GetStartTime(ITashaPerson person, Activity activity, Random random, out Time startTime) { return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(person, activity), 1, 0, Scheduler.StartTimeQuanta - 1, random, out startTime)); }