Package jline.io

Class Ret.FJApprox

java.lang.Object
jline.io.Ret.FJApprox
Enclosing class:
Ret

public static class Ret.FJApprox extends Object
  • Field Details

    • nonfjmodel

      public Network nonfjmodel
    • fjclassmap

      public Matrix fjclassmap
    • fjforkmap

      public Matrix fjforkmap
    • fj_auxiliary_delays

      public Map<Integer,Integer> fj_auxiliary_delays
    • fanout

      public Map<Integer,Integer> fanout
    • serviceSrc

      public Map<String,Integer> serviceSrc
      Provenance of the transformed model's service slots, recorded by mmt so that a cached transformation can be re-fed from the base model instead of rebuilt (see ModelAdapter.refreshServicesFromBase). Rebuilding costs a full serialisation deep copy of the model per outer iteration, and SolverLN re-solves every layer on every fixed-point iteration. Key is the slot "nodeIdx,classIdx" of the transformed model; value is the base-model class index its service was copied from. A slot absent from this map is NOT base-derived and must never be read from the base.
    • serviceSrcObj

      public Map<String,Object> serviceSrcObj
      Per slot, the base-model distribution object whose copy currently sits in that slot. Copying a distribution in the JAR means a serialisation round-trip (Copyable.copy), which is exactly the cost the cache exists to avoid, so a refresh re-copies only the slots whose base object is no longer the one we copied. That identity test is sound because base distributions are never mutated in place -- every writer replaces the object via setService (the single updateRate call in the tree acts on the transformed model's source arrivals, not on any base distribution).
    • immediateSlots

      public Set<String> immediateSlots
      Slots the transformation itself initialises to Immediate (the joins it turns into zero-service delays), as "nodeIdx,classIdx". These must be restored on reuse rather than merely skipped: the fork loop overwrites each join with its current synchronisation delay on every pass, so a reused model otherwise still holds the previous outer iteration's converged value and silently warm-starts the fork loop.
    • auxArrivalSrc

      public Map<Integer,Integer> auxArrivalSrc
      Auxiliary-class source arrivals, owned by the forkLambda fixed point rather than by the base model: aux class index -> base class index, with auxDisabled marking those a cold call sets to Disabled. Reset from forkLambdaInit on reuse.
    • auxDisabled

      public Set<Integer> auxDisabled
    • baseModel

      public Network baseModel
      Base model the maps above refer to, and the forkLambda mmt was called with.
    • forkLambdaInit

      public Matrix forkLambdaInit
    • baseSn

      public NetworkStruct baseSn
      The base model's compiled struct at the time this transformation was built. The transformation is a function of the fork topology, which the struct encodes, so a cached FJApprox may only be reused while this is still identically the model's current struct: refreshStruct installs a NEW NetworkStruct, hence identity change == structural change. Holding the reference also stops the object being collected and its identity recycled.
    • outerForks

      public Matrix outerForks
      sort_forks output, cached alongside the transformation it describes.
    • parentForks

      public Matrix parentForks
  • Constructor Details

  • Method Details

    • slot

      public static String slot(int nodeIdx, int classIdx)
      Slot key for serviceSrc / immediateSlots.