Enum ProcessType

java.lang.Object
java.lang.Enum<ProcessType>
jline.lang.constant.ProcessType
All Implemented Interfaces:
Serializable, Comparable<ProcessType>, java.lang.constant.Constable

public enum ProcessType extends Enum<ProcessType> implements Serializable
Constants for specifying a point process type
  • Enum Constant Details

    • EXP

      public static final ProcessType EXP
    • ERLANG

      public static final ProcessType ERLANG
    • DISABLED

      public static final ProcessType DISABLED
    • IMMEDIATE

      public static final ProcessType IMMEDIATE
    • HYPEREXP

      public static final ProcessType HYPEREXP
    • APH

      public static final ProcessType APH
    • COXIAN

      public static final ProcessType COXIAN
    • PH

      public static final ProcessType PH
    • MAP

      public static final ProcessType MAP
    • DMAP

      public static final ProcessType DMAP
    • UNIFORM

      public static final ProcessType UNIFORM
    • DET

      public static final ProcessType DET
    • GAMMA

      public static final ProcessType GAMMA
    • PARETO

      public static final ProcessType PARETO
    • WEIBULL

      public static final ProcessType WEIBULL
    • LOGNORMAL

      public static final ProcessType LOGNORMAL
    • MMPP2

      public static final ProcessType MMPP2
    • BMAP

      public static final ProcessType BMAP
    • MMAP

      public static final ProcessType MMAP
    • ME

      public static final ProcessType ME
    • RAP

      public static final ProcessType RAP
    • REPLAYER

      public static final ProcessType REPLAYER
    • TRACE

      public static final ProcessType TRACE
    • COX2

      public static final ProcessType COX2
    • BINOMIAL

      public static final ProcessType BINOMIAL
    • POISSON

      public static final ProcessType POISSON
    • GEOMETRIC

      public static final ProcessType GEOMETRIC
    • DUNIFORM

      public static final ProcessType DUNIFORM
    • BERNOULLI

      public static final ProcessType BERNOULLI
    • PRIOR

      public static final ProcessType PRIOR
    • DISCRETESAMPLER

      public static final ProcessType DISCRETESAMPLER
    • ZIPF

      public static final ProcessType ZIPF
    • NHPP

      public static final ProcessType NHPP
    • MAPT

      public static final ProcessType MAPT
    • PHT

      public static final ProcessType PHT
    • MPH

      public static final ProcessType MPH
      The MARKED families. A mark is a label carried by an event, and at a Source it selects the class of the arriving job (Source.setMarkedArrival, sn.markidx). MPH is the renewal special case of MMAP, obtained from a PH with K marked exits by D0 = S and D1k = s_k*alpha; MMAPT is MMAP with a piecewise-constant matrix schedule, and MPHT is the same lowering applied segment by segment. MPH keeps an id of its own rather than aliasing MMAP, so a solver that cannot honour a marked renewal process refuses it explicitly instead of inheriting MMAP's support.
    • MMAPT

      public static final ProcessType MMAPT
    • MPHT

      public static final ProcessType MPHT
    • BMMAPT

      public static final ProcessType BMMAPT
      BMMAPT crosses the BATCH axis with the two above: a block is indexed by segment, mark and batch size, and one epoch releases a batch of jobs that all carry the same mark. It reduces to MMAPT when every batch size is 1 and to BMAP when the schedule is flat, and like MPH it keeps an id of its own so a solver that cannot release batches refuses it by name instead of inheriting MMAPT's support.
  • Method Details

    • values

      public static ProcessType[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static ProcessType valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • fromDistribution

      public static ProcessType fromDistribution(Distribution d)
    • isMarkovian

      public static boolean isMarkovian(ProcessType t)
      True when sn.proc carries an exact matrix representation of a process of this type: a genuine (D0,D1) pair, or its matrix-exponential analogue for ME/RAP.

      The distinction is about sn.proc, NOT about what jline.lang.processes.Distribution#getProcess() returns. getProcess hands back raw distribution PARAMETERS for several non-Markovian families -- Gamma, Weibull, Lognormal, Pareto and Uniform return two scalars (Pareto {alpha,k}, Uniform {min,max}) -- and the network refresh replaces those with map_erlang(mean, n) before storing them in sn.proc, where n = ceil(1/SCV) capped at 100 (n = 20 when SCV < CoarseTol). That fit matches the mean, and matches the SCV only when SCV <= 1: Pareto with SCV 64 gives n = 1, a single exponential of SCV 1. So for these types sn.proc is an approximation, not the law that was requested, and nothing on the cell says so -- the only signal is sn.procid.

      Solvers that read sn.proc as if it were the exact law must gate on this predicate. It is the procid-level counterpart of Distribution.isMarkovian(), i.e. of the Markovian class hierarchy, so the two must stay in step.

      Parameters:
      t - process type
      Returns:
      true if sn.proc holds the exact law for this type
    • isMarked

      public static boolean isMarked(ProcessType t)
      True when the type carries PER-MARK arrival blocks, i.e. an event of this process is labelled and the label is meaningful to the model. At a Source the label selects the class of the arriving job (Source.setMarkedArrival, sn.markidx).
      Parameters:
      t - process type
      Returns:
      true for MMAP, MPH, MMAPT, MPHT and BMMAPT
    • isMarkedStationary

      public static boolean isMarkedStationary(ProcessType t)
      True when sn.proc holds the STATIONARY marked cell, the M3A layout {D0, D1_agg, D11, ..., D1K}.

      MPH is the renewal special case of MMAP and lowers to exactly that cell (D0 = S, D1k = s_k*alpha), so every consumer that reads the M3A layout serves both and must gate on this predicate rather than on equality with MMAP.

      Parameters:
      t - process type
      Returns:
      true for MMAP and MPH
    • isMarkedSchedule

      public static boolean isMarkedSchedule(ProcessType t)
      True when sn.proc holds the MARKED SCHEDULE slot, {breakpoints, D0 segments, D1_agg segments, cyclic, per-mark segments}.

      MPHT is stored lowered to MMAPT form segment by segment, so one walk serves both, exactly as one MAPt walk serves MAPt and PHt.

      BMMAPT IS INCLUDED, and its slot is that one with the batch blocks appended, so a consumer gated on this predicate reads a BMMAPT as the MMAPT it aggregates down to. That is right for anything time-blind or batch-blind and WRONG for anything that releases jobs: an arrival or service sampler must branch on isBatch(jline.lang.constant.ProcessType) as well, or it silently delivers one job per epoch.

      Parameters:
      t - process type
      Returns:
      true for MMAPT, MPHT and BMMAPT
    • isBatch

      public static boolean isBatch(ProcessType t)
      True when an EVENT of this process releases (or, as a service process, completes) a BATCH of jobs whose size the process itself carries in its blocks.

      This is the batch twin of isMarkedStationary(jline.lang.constant.ProcessType) and isMarkedSchedule(jline.lang.constant.ProcessType), and the same rule applies: a procid test that should serve every batch family is a MEMBERSHIP test, never equality with BMAP.

      It is disjoint from sn.arrivalbatch, which is a SEPARATE batch-size law bolted onto a renewal stream by Source.setArrivalBatch. A process that is isBatch already carries its own sizes, so the two are mutually exclusive by construction.

      Parameters:
      t - process type
      Returns:
      true for BMAP and BMMAPT
    • fromText

      public static ProcessType fromText(String name)
    • toText

      public static String toText(ProcessType type)