Package jline.api.sn

Class SnIsPhaseType

java.lang.Object
jline.api.sn.SnIsPhaseType

public final class SnIsPhaseType extends Object
Tests whether a process representation admits a phase-type reading. A representation is Markovian when D0 has nonnegative off-diagonal entries, every D_k with k >= 1 is nonnegative, and the entry vector pie is nonnegative. Exactly under those conditions do sn.mu, sn.phi and sn.pie carry their probabilistic reading (mu_i = -D0(i,i) is a rate, phi_i is a completion probability, pie is a distribution over phases), which is what the CTMC state space, SSA and the fluid ODEs consume. A matrix-exponential (ME) or rational (RAP) process fails the test: its moments, transforms and aggregated stationary measures remain exact, but the per-phase quantities are signed. See _kb/04-networkstruct.md. Mirrors matlab/src/api/sn/sn_is_phasetype.m and the native Python line_solver.api.sn.sn_is_phasetype.
  • Method Details

    • snIsPhaseType

      public static boolean snIsPhaseType(MatrixCell proc)
      Tests a (D0, D1, ...) representation without an entry vector.
      Parameters:
      proc - the process representation
      Returns:
      true when the representation is Markovian
    • snIsPhaseType

      public static boolean snIsPhaseType(MatrixCell proc, Matrix pie)
      Tests a (D0, D1, ...) representation and its entry vector.
      Parameters:
      proc - the process representation
      pie - the entry vector, or null to skip that test
      Returns:
      true when the representation is Markovian