BeginPackage["UVW`Timerep`"] (* Version 2.0, 08/15/97 *) Queue::usage= "Queue[interarrivals,services] represents on a graphics as a function of time, the evolution of the number of customers in a queue with one server.The times between consecutive arrivals are read in the first list, the service times in the second one." CumulatedTimes::usage= "CumulatedTimes[listoftimes] represents on a graphics the function of time defined as follows. Starting from 0, it is incremented by one at dates separated by the times read in listoftimes." Geiger::usage= "Geiger[listoftimes] plots on a line the dates separated by the durations read in listoftimes." Begin["`Private`"] Queue[interarrivals_List,services_List] := Block[{m, arr={}, dep={}, abs={}, ord={}, events={}}, m=Min[Length[interarrivals],Length[services]]; arr=Rest[FoldList[Plus,0,N[interarrivals]]]; dep=Append[dep,First[arr]+First[services]]; For[k=1, k True, AxesLabel -> {"t","N(t)"}] ] CumulatedTimes[listoftimes_List] := Block[{cumul={},ordinates={},g}, cumul = FoldList[Plus,0,N[listoftimes]]; ordinates = Range[0.,N[Length[listoftimes]-1]]; g = Transpose[ { Transpose[{Drop[cumul,-1],ordinates}] , Transpose[{Drop[cumul,1],ordinates}] } ]; g = Table[Line[g[[i]]],{i,1,Length[g]}]; Show[ Graphics [g] , Prolog -> Thickness[0.003], Axes -> True, AxesLabel -> {"t","N(t)"}] ] Geiger[listoftimes_List]:= Block[{cumul,max,g}, cumul = Rest[FoldList[Plus,0,N[listoftimes]]]; max = Max[cumul]; g = Table[Line[{{cumul[[i]],0.},{cumul[[i]],0.01}}], {i,Length[cumul]}]; Show[ Graphics [g], Prolog -> Thickness[0.003], PlotRange -> {{0.,max},{0.,1.}}, Axes ->{True,False}, AxesLabel ->{"t","t"}] ] End[] EndPackage[]