Beispiel #1
0
 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);
 }
Beispiel #2
0
 public DemoModel(string name, int nCustomers, IDoubleDistribution interarrivalTime, int nTellers, IDoubleDistribution serviceTime) : base(name)
 {
     NCustomers       = nCustomers;
     InterarrivalTime = interarrivalTime;
     NTellers         = nTellers;
     ServiceTime      = serviceTime;
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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]);
            }
        }
Beispiel #5
0
        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]);
            }
        }
Beispiel #6
0
 public void SetPeriod(IDoubleDistribution distribution, long ticks)
 {
     m_seconds      = TimeSpan.FromTicks(ticks).TotalSeconds;
     m_distribution = distribution;
 }
Beispiel #7
0
 public Periodicity(IDoubleDistribution distribution, long ticks)
 {
     SetPeriod(distribution, ticks);
 }
Beispiel #8
0
 public Periodicity(IDoubleDistribution distribution, Units units)
 {
     m_distribution = distribution;
     SetPeriod(distribution, ((long)(TimeSpan.TicksPerSecond * SecondsFromUnits(units))));
 }
Beispiel #9
0
 public TellerSynchronous(IModel model, IDoubleDistribution serviceTime) : base(model, serviceTime)
 {
 }
Beispiel #10
0
 public DemoModelSynchronous(string name, int nCustomers, IDoubleDistribution interarrivalTime, int nTellers, IDoubleDistribution serviceTime)
     : base(name, nCustomers, interarrivalTime, nTellers, serviceTime)
 {
 }