public Teller(IModel model, IDoubleDistribution serviceTime) : base(model, $"Teller_{TellerNum++:D3}", Guid.NewGuid(), 1, 1, true, true, true) { m_model = model; ServiceTime = serviceTime; TellerState = new EnumStateMachine <TellerState>(model.Executive, Basic.TellerState.Idle, trackTransitions: false); }
public DemoModel(string name, int nCustomers, IDoubleDistribution interarrivalTime, int nTellers, IDoubleDistribution serviceTime) : base(name) { NCustomers = nCustomers; InterarrivalTime = interarrivalTime; NTellers = nTellers; ServiceTime = serviceTime; }
public BufferedServer(IModel model, string name, Guid guid, IDoubleDistribution dist, Periodicity.Units timeUnits, bool usePreQueue, bool usePostQueue) : this(model, name, guid) { IServer server = new SimpleServer(model, name + ".InnerServer", Guid.NewGuid(), new Periodicity(dist, timeUnits)); IQueue preQueue = usePreQueue?new Queue(model, name + ".PreQueue", Guid.NewGuid()):null; IQueue postQueue = usePostQueue?new Queue(model, name + ".PreQueue", Guid.NewGuid()):null; Configure(server, preQueue, postQueue); }
private void _TestTimeSpanHistogram(IDoubleDistribution dist, int nDataPoints, long low, long high, int nBins) { TimeSpan[] rawData = new TimeSpan[nDataPoints]; for (int x = 0; x < nDataPoints; x++) { rawData[x] = TimeSpan.FromTicks((long)dist.GetNext()); } IHistogram hist = new Histogram1D_TimeSpan(rawData, TimeSpan.FromTicks(low), TimeSpan.FromTicks(high), nBins, "Test Histogram"); hist.Recalculate(); int[] bins = (int[])hist.Bins; for (int i = 0; i < bins.Length; i++) { Debug.WriteLine(hist.GetLabel(new int[] { i }) + ", " + bins[i]); } }
private void _TestDoubleHistogram(IDoubleDistribution dist, int nDataPoints, double low, double high, int nBins) { double[] rawData = new double[nDataPoints]; for (int x = 0; x < nDataPoints; x++) { rawData[x] = dist.GetNext(); } IHistogram hist = new Histogram1D_Double(rawData, low, high, nBins, "Test Histogram"); hist.LabelProvider = new LabelProvider(((Histogram1D_Double)hist).DefaultLabelProviderWithError); hist.Recalculate(); int[] bins = (int[])hist.Bins; for (int i = 0; i < bins.Length; i++) { Debug.WriteLine(hist.GetLabel(new int[] { i }) + ", " + bins[i]); } }
public void SetPeriod(IDoubleDistribution distribution, long ticks) { m_seconds = TimeSpan.FromTicks(ticks).TotalSeconds; m_distribution = distribution; }
public Periodicity(IDoubleDistribution distribution, long ticks) { SetPeriod(distribution, ticks); }
public Periodicity(IDoubleDistribution distribution, Units units) { m_distribution = distribution; SetPeriod(distribution, ((long)(TimeSpan.TicksPerSecond * SecondsFromUnits(units)))); }
public TellerSynchronous(IModel model, IDoubleDistribution serviceTime) : base(model, serviceTime) { }
public DemoModelSynchronous(string name, int nCustomers, IDoubleDistribution interarrivalTime, int nTellers, IDoubleDistribution serviceTime) : base(name, nCustomers, interarrivalTime, nTellers, serviceTime) { }