LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::ssa::SsaSerialEngine< T > Class Template Reference

The serial engine: the sample path of solver_ssa.m's main loop. More...

#include <line/solvers/ssa/solver_ssa_serial.h>

Public Member Functions

 SsaSerialEngine (const qn::NetworkStruct< T > &sn, const SsaSerialOptions &opt, const std::vector< qn::FjSync< T > > &fjsync=std::vector< qn::FjSync< T > >())
 fjsync is the fork firing list of the TAG-AUGMENTED struct, empty for a model with no Fork.
SsaSerialRun< T > run ()
 Run opt.samples firings and return the path with its statistics.
const std::vector< qn::Sync< T > > & sync () const
 The synchronization list the trace's tran_sync indexes.
const qn::NetState< T > & init_state () const
 The state the path starts from, at full encoding width.

Detailed Description

template<class T>
class line::ssa::SsaSerialEngine< T >

The serial engine: the sample path of solver_ssa.m's main loop.

It is a class for the reason NrmEngine is: the loop threads the current state, the visited-state table, the two rate tables and the trace through every step, and the reference threads the same through one long function.

Definition at line 556 of file solver_ssa_serial.h.

Constructor & Destructor Documentation

◆ SsaSerialEngine()

template<class T>
line::ssa::SsaSerialEngine< T >::SsaSerialEngine ( const qn::NetworkStruct< T > & sn,
const SsaSerialOptions & opt,
const std::vector< qn::FjSync< T > > & fjsync = std::vector<qn::FjSync<T>>() )
inline

fjsync is the fork firing list of the TAG-AUGMENTED struct, empty for a model with no Fork.

It is passed in rather than derived because the augmentation produces the struct and the firing list together and sn must be the augmented one: deriving it here would leave the two able to disagree about which classes the branches carry.

Definition at line 565 of file solver_ssa_serial.h.

References line::ctmc::ctmc_has_waitq_region(), line::ctmc::CtmcOptions::cutoff, line::InputError::InputError(), line::qn::refresh_global_sync(), line::qn::refresh_sync(), and line::ctmc::CtmcOptions::state_max.

Member Function Documentation

◆ init_state()

template<class T>
const qn::NetState< T > & line::ssa::SsaSerialEngine< T >::init_state ( ) const
inline

The state the path starts from, at full encoding width.

Definition at line 605 of file solver_ssa_serial.h.

◆ run()

◆ sync()

template<class T>
const std::vector< qn::Sync< T > > & line::ssa::SsaSerialEngine< T >::sync ( ) const
inline

The synchronization list the trace's tran_sync indexes.

Definition at line 603 of file solver_ssa_serial.h.

Referenced by run().


The documentation for this class was generated from the following file: